Alright hackers, I have a plan! :) I've given it enough thinking and belive it'll work to mix mark&sweep and reference couning.
Just, I don't have much time to do, and there's in particular one portion of the required work which is error prone and pretty annoying. The annoying part is taking back use of intrusive_ptr for all GcResources. If anyone is interested in doing that part I'll go on with the rest. The shared GC branch already contains the code for the GC part. When running almost any movie it segfaults do to inconsistent use of intrusive_ptr<GcResource> in current code (most notably one in AsSetPropFlags temporarly storing an as_object into an intrusive_ptr). When the intrusive_ptr use is consistent we should *only* get segfaults due to recycling of unreachable circular ref, which would be fixed by implementing an override of the GcResource::cleanResourceLinks virtual method in the relevant classes. NOTE that implementing the consistent use of intrusive_ptr will still allow enabling/disabling GC/RC mix by only touching libbase/smart_ptr.h so that we can compare memory use and performances. --strk; Free GIS & Flash consultant/developer () ASCII Ribbon Campaign http://foo.keybit.net/~strk/services.html /\ Keep it simple! _______________________________________________ Gnash-dev mailing list Gnash-dev@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-dev