On Mar 26, 2009, at 8:27 AM, Patrick Mueller wrote:

Looking at JavaScriptCore APIs, the doc on the Release/Retain functions for JSGlobalContext, JSClass, and JSString are underwhelming. I'm wondering if someone can provide me a pointer to guidance on usage.

There are two things I'm thinking of here. I'm familiar from Java JNI and other 'native' bindings for languages for the needs of 'pinning' objects both to keep them from moving and/or keep them from being GC'd. Release/Retain could be related to that.

OTOH, I know there's some kind of Release/Retain dance in the ObjectiveC world as it relates to the memory management scheme of using pools to manage memory. Release/Retain could be related to that.

Guessing the second, as there isn't a Release/Retain story for JSObject/JSValue itself, for instance. If I'm doing straight up C programming, no Cocoa, or Obj-C stuff at all, do I need to worry about this stuff at all, or is there a common pattern I should be using? Do I NEED to be using memory pools (or whatever they're called) to be doing kosher memory management for, say, long-lived processes where these Retain-able things are coming and going?

JSValueRef/JSObjectRef is garbage collected. The other kinds of values are reference counted. Retain increases the refcount and Release lowers it.

Regards,
Maciej

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to