This should go to the webkit...@lists.webkit.org list instead. Please repost there.
Creating a bug report on bugs.webkit.org for tracking your issues is another welcome option. Kenneth On Tue, Dec 15, 2009 at 5:24 PM, Andrew Webster <apwebs...@gmail.com> wrote: > For all the Qt people out there, here is my problem: > > We have quite a few QObjects that we are inserting into JavaScript > using addToJavaScriptWindowObject, however because we have limited > resources and are creating so many of these objects, we would prefer > that they are NOT ScriptOwnership objects so that there is not as much > duplication for each frame. This presents a problem when it comes to > using 'connect' to handle signals. Each connect creates a > QtConnectionObject which references the JSHTMLDocument object. The > QtConnectionObject is never destroyed because the QObject is never > destroyed, and this prevents most of the objects from being cleaned up > by the gc when the page is refreshed leading to a significant memory > leak. > > The solution I'm working on essentially makes the QtConnectionObject > 'script owned' so that it is cleaned up when the script is destroyed: > > Index: qt_runtime.cpp > =================================================================== > --- qt_runtime.cpp (revision 52150) > +++ qt_runtime.cpp (working copy) > @@ -1527,6 +1527,11 @@ > else { > // Store connection > connections.insert(sender, conn); > + // also create a script wrapper for the > connection object, but make sure that it is destroyed when > + // the script goes away > + d->m_instance->rootObject()->gcProtect( > + QtInstance::getQtInstance(conn, > d->m_instance->rootObject(), QScriptEngine::ScriptOwnership)-> > + > createRuntimeObject(exec->dynamicGlobalObject()->globalExec())); > } > } else { > // Now to find our previous connection object. Hmm. > > This seems to be working in my limited tests. Can anyone comment on > the validity of this solution? > > > Thanks, > Andrew > _______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev > -- Kenneth Rohde Christiansen Technical Lead / Senior Software Engineer Qt Labs Americas, Nokia Technology Institute, INdT Phone +55 81 8895 6002 / E-mail kenneth.christiansen at openbossa.org
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev