X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkObject.cxx;h=37231f31aeb38d25db45226179c949cee24227d6;hb=033637cc97855ea9e1a515a2c20486700dd004a6;hp=7ae64a27c1c9e637027b72d2a53f5162411d11a5;hpb=603bd2accf3811a7c49caa53b795edde11cbc710;p=bbtk.git diff --git a/kernel/src/bbtkObject.cxx b/kernel/src/bbtkObject.cxx index 7ae64a2..37231f3 100644 --- a/kernel/src/bbtkObject.cxx +++ b/kernel/src/bbtkObject.cxx @@ -1,5 +1,6 @@ #include "bbtkObject.h" #include "bbtkMessageManager.h" +#include "bbtkPackage.h" namespace bbtk { @@ -7,6 +8,7 @@ namespace bbtk //======================================================================= Object::ObjectListType Object::mgObjectList; + Object::ObjectListType Object::mgPackageList; //======================================================================= //======================================================================= @@ -32,6 +34,16 @@ namespace bbtk } //======================================================================= + //======================================================================= + void Object::InsertInPackageList(Pointer p) + { + bbtkDebugMessage("object",9,"##> Object::InsertInPackageList(\"" + <GetObjectName()<<"\" ["< w(p); + mgPackageList.insert(w); + } + //======================================================================= + //======================================================================= void Object::RemoveFromObjectList(WeakPointer p) @@ -151,9 +163,11 @@ namespace bbtk void Object::Deleter::operator() (Object* p) { std::string name = p->GetObjectName(); +#ifdef BBTK_COMPILE_DEBUG_MESSAGES void* adr = (void*)p; bbtkDebugMessage("object",1,"##> Object::Deleter : deleting \"" <Delete(p); bbtkDebugMessage("object",2,"<## Object::Deleter : \""< Object::ReleasePackages()"<use_count() != 0) + { + bbtkDebugMessage("object",1,"##> Releasing package '"<< + i->lock()->GetThisPointer()->GetName() + <<"'"<lock()); + Package::WeakPointer w(i->lock()->GetThisPointer()); + Package::Release(w); + /* + if (p->GetObjectName().find(name) != std::string::npos ) + { + std::cout << n << "/" << mgObjectList.size() << " "; + PrintObjectInfo(p); + m += p->GetObjectSize(); + n++; + } + */ + } + } + } + //======================================================================= @@ -180,6 +225,8 @@ namespace bbtk //======================================================================= StaticInitTime::~StaticInitTime() { + Object::ReleasePackages(); + if (PrintObjectListInfo) { std::cout << std::endl @@ -190,17 +237,21 @@ namespace bbtk if (Object::GetObjectsCount()>0) { std::cout << std::endl; - std::cout << "**************************** WARNING ********************" - <