[cig-commits] commit:

Mercurial hg at geodynamics.org
Mon Nov 24 11:58:46 PST 2008


changeset:   81:75783b454d4d
user:        JulianGiordani
date:        Tue May 13 00:40:09 2008 +0000
files:       Swarm/src/SwarmClass.c Swarm/src/Swarm_Register.c Swarm/src/Swarm_Register.h
description:
Now when a swarm is deleted it erases it's entry from the Swarm_Register.
Previously tmp swarm where added to the Swarm_Reg and never deleted once they were through, causing checkPointing to try checkpoint a non existent swarm.


diff -r 819e158b3b34 -r 75783b454d4d Swarm/src/SwarmClass.c
--- a/Swarm/src/SwarmClass.c	Wed Apr 30 03:43:02 2008 +0000
+++ b/Swarm/src/SwarmClass.c	Tue May 13 00:40:09 2008 +0000
@@ -329,6 +329,8 @@ void _Swarm_Delete( void* swarm ) {
 	}
 
 	NewClass_Delete( self->incArray );
+
+	Swarm_Register_RemoveIndex( Swarm_Register_GetSwarm_Register(), self->swarmReg_I );
 	
 	/* Stg_Class_Delete parent class */
 	_Stg_Component_Delete( self );
diff -r 819e158b3b34 -r 75783b454d4d Swarm/src/Swarm_Register.c
--- a/Swarm/src/Swarm_Register.c	Wed Apr 30 03:43:02 2008 +0000
+++ b/Swarm/src/Swarm_Register.c	Tue May 13 00:40:09 2008 +0000
@@ -149,6 +149,16 @@ Index Swarm_Register_Add( Swarm_Register
 {
 	assert( self );
 	return Stg_ObjectList_Append( self->swarmList, swarm );
+}
+
+void Swarm_Register_RemoveIndex( Swarm_Register* self, unsigned int index )
+{
+	assert( self );
+	/* The third argument controls if the Delete phase is run or not in this function
+	 * KEEP = Don't run delete
+	 * DELETE = Run delete
+	 */
+	_Stg_ObjectList_RemoveByIndex( self, index, KEEP );
 }
 	
 Swarm* Swarm_Register_Get( Swarm_Register* self, Name name )
diff -r 819e158b3b34 -r 75783b454d4d Swarm/src/Swarm_Register.h
--- a/Swarm/src/Swarm_Register.h	Wed Apr 30 03:43:02 2008 +0000
+++ b/Swarm/src/Swarm_Register.h	Tue May 13 00:40:09 2008 +0000
@@ -83,6 +83,7 @@
 	*/
 
 	Index Swarm_Register_Add( Swarm_Register* self, void* swarm );
+	void Swarm_Register_RemoveIndex( Swarm_Register* self, unsigned int index );
 	
 	Swarm* Swarm_Register_Get( Swarm_Register* self, Name name );
 	Swarm* Swarm_Register_At( void* swarmRegister, Index index ) ;



More information about the CIG-COMMITS mailing list