** Changed in: kaliveda/1.8
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of KaliVeda
Development Team, which is subscribed to KaliVeda.
https://bugs.launchpad.net/bugs/504779

Title:
  bit conflict in KVSeqCollection/KVList: kIsOwner and kSignals both
  address BIT(14)

Status in KaliVeda data analysis framework:
  Fix Released
Status in KaliVeda 1.7 series:
  Fix Released
Status in KaliVeda 1.8 series:
  Fix Released

Bug description:
  in versions <= 1.7.4b: KVList::kSignals bit flag for sending Modified() 
signals is the same as TCollection::kIsOwner bit flag (BIT(14))
  in trunk: KVSeqCollection::kSignals bit flag for sending Modified() signals 
is the same as TCollection::kIsOwner bit flag (BIT(14))

  resulting conflict means that for <=1.7.4b, creating a KVList using the 
default constructor KVList(Bool_t owner=kTRUE)
  is not sufficient to ensure that list owns its objects, as in this 
constructor we do:
  SetOwner(owner);
  ResetBit(kSignals);// <=== same as SetOwner(kFALSE) !!!
  if one subsequently calls SendModifiedSignals() or SetOwner() then BOTH 
signals and ownership are activated
  (with potentially catastrophic results)

  in trunk version, ResetBit(kSignals) is called in KVSeqCollection ctor before 
SetOwner(owner) is called in KVList ctor,
  so KVList DOES own its objects... and sends signals as well. The same 
conflict between SendModifiedSignals() and SetOwner()
  exists.

_______________________________________________
Mailing list: https://launchpad.net/~kaliveda-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kaliveda-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to