Summary: | Start de-virtualizing destructors starting with JSCell and moving down | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Mark Hahnenberg <mhahnenberg> | ||||
Component: | JavaScriptCore | Assignee: | Mark Hahnenberg <mhahnenberg> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | ||||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Bug Depends on: | 74339 | ||||||
Bug Blocks: | 74331, 74342 | ||||||
Attachments: |
|
Description
Mark Hahnenberg
2011-12-12 14:42:14 PST
Created attachment 118864 [details] Start de-virtualizing destructors No changelog (see bug 74331) Comment on attachment 118864 [details] Start de-virtualizing destructors View in context: https://bugs.webkit.org/attachment.cgi?id=118864&action=review Remember to remove the #pragmas in your final patch. > Source/JavaScriptCore/heap/MarkedBlock.cpp:72 > + if (cell->classInfo() != &JSFinalObject::s_info) Use isJSFinalObject(). > Source/JavaScriptCore/runtime/Executable.cpp:47 > + jsCast<ExecutableBase*>(cell)->~ExecutableBase(); Should be ExecutableBase::~ExecutableBase(). > Source/JavaScriptCore/runtime/JSArray.cpp:280 > + ASSERT(classInfo()->isSubClassOf(&JSArray::s_info)); I think this would read better as ASSERT(jsCast<JSArray>(this)). > Source/JavaScriptCore/runtime/JSByteArray.cpp:47 > + ASSERT(classInfo()->isSubClassOf(&JSByteArray::s_info)); Ditto. > Source/JavaScriptCore/runtime/JSObject.cpp:90 > + jsCast<JSObject*>(cell)->~JSObject(); JSObject::~JSObject(). > Source/JavaScriptCore/runtime/JSString.cpp:55 > + ASSERT(thisObject->classInfo() == &JSString::s_info); I think this ASSERT would be more readable as ASSERT(jsCast<JSString>(cell)). |