From: Arno P. <ar...@pu...> - 2010-03-25 11:37:01
|
Guys, I have just committed a patch submitted by Joshua Melcon. His patch removes the dependency on NSAutoreleasePool during code generation. NSAutoreleasePool is a convenience class for Objective-C programmers to defer releases on object references to a later time. So far we have made heavy use of NSAutoreleasePool (every method had its own NSAutoreleasePool). Unfortunately, NSAutoreleasePool is very runtime inefficient. Joshua's patch removes this dependency by computing where release and retains need to be inserted. This should dramatically improve runtime performance of the code generated by XMLVM. Please update your copies of XMLVM and try your applications. If there are problems, please report back on the mailing list. Joshua will continue with some further optimizations (currently there are some redundant retain/release in the generated code). Note: this change has *no* impact on the ownership rules when passing object references as input arguments or when returning an object reference as a result. Newly created instances should not be added to a NSAutoreleasePool. Arno |