]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkExecuter.cxx
*** empty log message ***
[bbtk.git] / kernel / src / bbtkExecuter.cxx
index 3c7b04cf704b7f803921ee9dcfc8be9e693718b0..cbb82eb059299bc981eba938cc0553101d42fb3a 100644 (file)
@@ -3,8 +3,8 @@
   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
@@ -60,7 +60,7 @@ namespace bbtk
      if (mRootCBB) 
      {
         mRootPackage->UnRegisterBlackBox("workspace");
-        delete mRootCBB;
+        mRootCBB->UnReference();
      }
      if (mRootPackage)
      {
@@ -93,6 +93,8 @@ namespace bbtk
   {
     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 
@@ -101,8 +103,8 @@ namespace bbtk
     // 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)
     {
@@ -117,6 +119,7 @@ namespace bbtk
                            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");
@@ -128,6 +131,9 @@ namespace bbtk
     // And in the list of open packages
     mOpenPackage.push_back(mRootPackage);
 
+
+    GetFactory()->CheckPackages();
+
     bbtkDebugDecTab("Kernel",9);
   }
   //=======================================================================