After rendering about 200 pages on my platform port of WebKit, I seem to be seeing some memory leaks involving the code in KJS, totalling 30-70MB. I have included a subgraph of the call graph for the leaking functions. I'm not familiar with the KJS code. Is it possible that circular references between different types of nodes are preventing their final destruction? If not, what are some possible causes I should investigate?

WebCore::ScriptController::evaluate->KJS::Interpreter::evaluate- >(KJS::Machine::execute, KJS::Parser::parse)

KJS::Parser::parse->kjsyyparse->(KJS::FunctionBodyNode::create, KJSLexerLex, makeFunctionCallNode, KJS::SourceElements::append)

In kjsyyparse alone, it's leaking 34MB.

Incorrect reference counting in the parser usually occurs in cases like syntax errors. You might want to look into that. Another interesting test would be to see if the same bug reproduced on other ports, like the Windows or Mac ports.

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

Reply via email to