diff --git a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx index 96ee9c56764f4b023e7720a95058e934ee7f7635..ed12f99569cee16ad7c980a1a9083f99fd0ea85c 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx +++ b/LArCalorimeter/LArCnv/LArByteStream/src/LArRawChannelContByteStreamCnv.cxx @@ -113,7 +113,9 @@ LArRawChannelContByteStreamCnv::createRepConst(DataObject* pObj, IOpaqueAddress* const std::string& nm = pObj->registry()->name(); + if ( pAddr != nullptr ) pAddr->release(); pAddr = new ByteStreamAddress(classID(),nm,""); + pAddr->addRef(); ATH_CHECK( m_tool->WriteLArRawChannels(ChannelContainer,*fea) ); return StatusCode::SUCCESS; diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx index d024586cb58f244711a59118b6983aa1712a651c..1e3709f9715045313ce570f33fe81ab216fc75be 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx @@ -196,8 +196,11 @@ StatusCode TileRawChannelContByteStreamCnv::createRepConst(DataObject* pObj, IOp } std::string name = pObj->registry()->name(); + + if ( pAddr != nullptr ) pAddr->release(); ByteStreamAddress* addr = new ByteStreamAddress(classID(), name, ""); pAddr = addr; + pAddr->addRef(); ATH_CHECK( m_tool->convert(rccont, fea) );