[webkit-help] memory leak in JSObjectMake?

Victor Liu victorlp2000 at hotmail.com
Mon May 10 15:18:08 PDT 2010


Hi,

I am using WebKit JSAPI to create my own JS object, looks like there is memory leak when calling JSObjectMake()/JSValueUnprotect().

My calling sequence like follow:
 {
    myJSClass = JSClassCreate(&my_jsclass_def);
    myJSObj = JSObjectMake(context, myJSClass, NULL);
    JSClassRelease(myJSClass);
    ...
    JSValueUnprotect(context, myJSObj);
 }

I looked into WebKit, after JSValueUnprotect was called, while garbage collector try to delete the object, ref-count of jsClass was not 0 at the time, so it was not deleted. If I have a big list of property or functions in myJSObj and frequently create/release the object, it will cause big memory problem.

I traced the reference counter of the object, there are two places to increase it:
   1. creating JSCallbackObjectData
   2. creating OpaqueJSClassContextData

While garbage collector deletes the object, the first one got deref but second one did not.
After I force to deref it,  I saw ~OpaqueJSClass() was called. however still have problem to remove OpaqueJSClassStaticValuesTable

Can any one help to check if I missed some thing from my calling function or if it is memory leak in the API, any comment how to fit it?

Thanks,
Victor

 		 	   		  
_________________________________________________________________
The New Busy is not the old busy. Search, chat and e-mail from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-help/attachments/20100510/96595250/attachment.html>


More information about the webkit-help mailing list