Program: bbtk
Module: $RCSfile: bbtkExecuter.cxx,v $ $
Language: C++
- Date: $Date: 2008/04/08 06:59:30 $
- Version: $Revision: 1.16 $
+ Date: $Date: 2008/04/09 11:16:57 $
+ Version: $Revision: 1.17 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
if (mRootCBB)
{
mRootPackage->UnRegisterBlackBox("workspace");
- delete mRootCBB;
+ mRootCBB->UnReference();
}
if (mRootPackage)
{
{
bbtkDebugMessageInc("Kernel",9,"Executer::Reset()" <<std::endl);
+ GetFactory()->CheckPackages();
+
// The 'user' package must be closed before all other
// because box destructors must not be unloaded when bb are deleted!
// Similarly, the 'workspace' CBB must be destroyed before
// access a user CBB descriptor which has been previously freed
if (mRootCBB)
{
- mRootPackage->UnRegisterBlackBox(mRootCBB->GetTypeName());
- delete mRootCBB;
+ mRootPackage->UnRegisterBlackBox(mRootCBB->GetTypeName());
+ mRootCBB->UnReference();
}
if (mRootPackage)
{
BBTK_STRINGIFY_SYMBOL(BBTK_VERSION));
// Create user workspace
mRootCBB = new ComplexBlackBoxDescriptor("workspace"); //,f);
+ mRootCBB->Reference();
mRootCBB->SetFactory(GetFactory());
mRootCBB->AddToAuthor("bbi (internal)");
mRootCBB->AddToDescription("User's workspace");
// And in the list of open packages
mOpenPackage.push_back(mRootPackage);
+
+ GetFactory()->CheckPackages();
+
bbtkDebugDecTab("Kernel",9);
}
//=======================================================================