On 1/27/2011 10:25 AM, Nick Guenther wrote:
Hello all,

I am experimenting with Webkit, trying to get it to do offscreen rendering. I 
have a small WinAPI C app that uses WebKit2. I notice that while there are 
Set*Client() methods, there don't seem to be any way to get your clients back 
out. So I have code like:

        WKPageLoaderClient *loader_callbacks = 
(WKPageLoaderClient*)malloc(sizeof(WKPageLoaderClient)); //FIXME: this leaks
        memset(loader_callbacks, 0, sizeof(WKPageLoaderClient));
        loader_callbacks->didFinishLoadForFrame = onLoad;

Which of course is in some function and ends up leaking loader_callbacks since 
that pointer is only kept around locally. The solution right now is to keep all 
my pointers around somewhere, or make the structs themselves global. But 
Globals Are Bad (TM), so for my future-curiosity I'm wondering if there plans 
to make Get*Client() methods or make WebKit2 free all the handlers? How is this 
supposed to be used?

Thanks in advance. Any insight would really clear things up for me.

The client struct is copied when you pass it to WKPageSetPageLoaderClient, so you can allocate it on the stack and just pass its address (or allocate it on the heap and free it after WKPageSetPageLoaderClient returns).

-Adam

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

Reply via email to