Yes, that is correct. The reason why we do not use destructors is because
destructors do not support arguments: however, as you might have experienced
yourself already, during destruction the home space is typically needed.

There is one other catch: when a space is destructed (for example after it
has failed), only dispose member functions for actors are called that have
registered by calling force (please check the doc). Or check some examples
(eg. regular/dom.icc). The reason for this: most propagators do not use any
external resources, they just use space-allocated memory. In that case there
is no reason to call dispose...

Good luck!
Christian

--
Christian Schulte, www.ict.kth.se/~schulte/ 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Filip Konvicka
Sent: Wednesday, September 19, 2007 3:45 PM
To: [EMAIL PROTECTED]
Subject: [gecode-users] Actor::dispose


Dear Gecode gurus,

I'm currently tracking down some memory leaks that occur when I'm using 
Gecode. I have custom propagators and branchings, and both have some 
non-trivial members (vectors and other data structures). What surprised 
me was that nobody calls the destructors of the vectors, and what's 
more, not even the destructors of the actors. Then I remembered seeing 
something about dispose() in Gecode 1.2.0 changelog. I ended up calling 
the members' destructors explicitly in dispose(). Is this the correct 
approach, or am I missing something?

Thanks,
Filip


_______________________________________________
Gecode users mailing list
[EMAIL PROTECTED] https://www.gecode.org/mailman/listinfo/gecode-users


_______________________________________________
Gecode users mailing list
[EMAIL PROTECTED]
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to