Niko Matsakis wrote: >>Boy am I wanting RAII from C++ for automatic freeing when scope is >>left. Maybe we need to come up with a similar thing, like all memory >>that should be freed once a scope is left must use some special struct >>that stores references to all created memory locally and then a free >>call must be made at all exit points in the function using the special >>struct. Otherwise the pointer is stored in the arena and handled >>en-mass later. >> >> > >That made sense. I think I'd be opposed to what you describe here >just because I think anything which *requires* that cleanup code be >placed on every function is error prone. > > > Placing it in every function isn't really the problem: at the moment it's more the fact we have to keep track of too many variables at any given time to properly deallocate it all. Cleanup code gets tricky very fast.
Then it gets further complicated by the fact that stmt_ty/expr_ty/mod_ty/etc. deallocate members (usually asdl_seq instances in my experience) - so if a construction takes place, all of a sudden you have to make sure you don't deallocate those members a second time in the cleanup code :S it gets tricky very quickly. Even if it meant we had just one function call - one, safe function call that deallocated all the memory allocated within a function - that we had to put before each and every return, that's better than what we have. Is it the best solution? Maybe not. But that's what we're looking for here I guess :) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com