[webkit-help] how to free a function callback
Stephan Assmus
superstippi at gmx.de
Mon Apr 5 15:50:02 PDT 2010
Hi,
scostas wrote:
> I've created a new method which receives a function as a parameter, and
> stores it in a pointer in C using JSValueToObject(). Then, in my C code,
> when I want to inform JavaScript about an event, I call that function
> using JSObjectCallAsFunction().
>
> My question is: do I have to do something to ensure that the object
> never becames invalid because the garbage collector frees it? Let's say
> that, instead of a function, it's an object's method, instead. In a
> system with reference counters I just should increment it, but with a
> garbage collector I have to add a "pointer" inside JavaScript VM, if it
> has not been done already...
>
> The other question is: what do I have to do, when a page is reloaded, to
> safely dispose this object and ensure that the JavaScript VM frees it?
> Again, with reference counters, I just should decrement it, but with the
> garbage collector I'm not sure how to ensure that any possible reference
> has been erased.
Hm, I know that it's possible to invoke instance methods on an object via a function pointer and the instance pointer. However, if you store function pointers without knowing an instance, then those can be to static methods only, or am I missing something? If you don't have an object, there is nothing to reference.
Best regards,
-Stephan
More information about the webkit-help
mailing list