[webkit-dev] JSxxxRelease/Retain - some guidance?
Maciej Stachowiak
mjs at apple.com
Thu Mar 26 12:35:00 PDT 2009
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
More information about the webkit-dev
mailing list