certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-cvs] certi/libCERTI ObjectClassSet.cc


From: CERTI CVS commits
Subject: [certi-cvs] certi/libCERTI ObjectClassSet.cc
Date: Wed, 04 Sep 2013 08:15:35 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      13/09/04 08:15:35

Modified files:
        libCERTI       : ObjectClassSet.cc 

Log message:
        Fixes bug #39456 : Recovery after crashed federate that owns multiple 
objects.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/ObjectClassSet.cc?cvsroot=certi&r1=3.57&r2=3.58

Patches:
Index: ObjectClassSet.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/ObjectClassSet.cc,v
retrieving revision 3.57
retrieving revision 3.58
diff -u -b -r3.57 -r3.58
--- ObjectClassSet.cc   3 Oct 2011 09:17:35 -0000       3.57
+++ ObjectClassSet.cc   4 Sep 2013 08:15:34 -0000       3.58
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: ObjectClassSet.cc,v 3.57 2011/10/03 09:17:35 erk Exp $
+// $Id: ObjectClassSet.cc,v 3.58 2013/09/04 08:15:34 erk Exp $
 // ----------------------------------------------------------------------------
 
 // Project
@@ -253,7 +253,8 @@
     handled_iterator i;
 
     for (i = fromHandle.begin(); i != fromHandle.end(); ++i) {
-        // Call KillFederate on that class until it returns NULL.
+        // Call KillFederate on every class of the current class set
+        // until it returns NULL.
         do {
             D.Out(pdExcept, "Kill Federate Handle %d .", theFederate);
             ocbList = i->second->killFederate(theFederate);
@@ -261,7 +262,8 @@
             D.Out(pdExcept, "Federate Handle %d Killed.", theFederate);
 
             // Broadcast RemoveObject message recursively
-            if (ocbList != 0) {
+            // going from current class to its superclass.
+            if (ocbList != NULL) {
                 currentClass = i->second->getSuperclass();
                 D.Out(pdExcept, "List not NULL");
                 while (currentClass != 0) {
@@ -270,11 +272,11 @@
                           currentClass);
 
                     // It may throw ObjectClassNotDefined
-                    i->second = getObjectFromHandle(currentClass);
+                    ObjectClass* currentClassObject = 
getObjectFromHandle(currentClass);
 
-                    i->second->broadcastClassMessage(ocbList);
+                    currentClassObject->broadcastClassMessage(ocbList);
 
-                    currentClass = i->second->getSuperclass();
+                    currentClass = currentClassObject->getSuperclass();
                 }
 
                 delete ocbList ;
@@ -623,4 +625,4 @@
 
 } // namespace certi
 
-// $Id: ObjectClassSet.cc,v 3.57 2011/10/03 09:17:35 erk Exp $
+// $Id: ObjectClassSet.cc,v 3.58 2013/09/04 08:15:34 erk Exp $



reply via email to

[Prev in Thread] Current Thread [Next in Thread]