Changeset 96831 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Oct 6, 2011, 10:42:50 AM (14 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r96809 r96831 1 2011-10-06 Mark Hahnenberg <[email protected]> 2 3 JSC objects need to know their own cell size at runtime. 4 https://bugs.webkit.org/show_bug.cgi?id=69390 5 6 Reviewed by Geoffrey Garen. 7 8 Added the cellSize field to ClassInfo and the static calculation of 9 size of each class to the CREATE_METHOD_TABLE macro, which will be 10 renamed in a followup patch to make its name match its broader use. 11 12 Also added a few ClassInfo structs so that each object that is allocated has its 13 correct size. 14 15 * JavaScriptCore.exp: 16 * runtime/ClassInfo.h: 17 18 Changed JSByteArray s_defaultInfo to s_info so that the template will get the 19 correct ClassInfo struct from it when it's allocated. 20 * runtime/JSByteArray.cpp: 21 * runtime/JSByteArray.h: 22 * runtime/JSCell.h: 23 (JSC::allocateCell): 24 * runtime/JSNotAnObject.cpp: 25 * runtime/JSNotAnObject.h: 26 * runtime/JSObject.cpp: 27 * runtime/JSObject.h: 28 (JSC::JSCell::cellSize): 29 * runtime/JSStaticScopeObject.cpp: 30 * runtime/JSStaticScopeObject.h: 31 * runtime/StrictEvalActivation.cpp: 32 * runtime/StrictEvalActivation.h: 33 1 34 2011-10-06 Gavin Peters <[email protected]> 2 35 -
trunk/Source/JavaScriptCore/JavaScriptCore.exp
r96809 r96831 116 116 __ZN3JSC10throwErrorEPNS_9ExecStateENS_7JSValueE 117 117 __ZN3JSC10throwErrorEPNS_9ExecStateEPNS_8JSObjectE 118 __ZN3JSC11JSByteArray13s_defaultInfoE119 118 __ZN3JSC11JSByteArray15createStructureERNS_12JSGlobalDataEPNS_14JSGlobalObjectENS_7JSValueEPKNS_9ClassInfoE 119 __ZN3JSC11JSByteArray6s_infoE 120 120 __ZN3JSC11JSByteArrayC1EPNS_9ExecStateEPNS_9StructureEPN3WTF9ByteArrayE 121 121 __ZN3JSC11ParserArena5resetEv … … 156 156 __ZN3JSC12StringObject6s_infoE 157 157 __ZN3JSC12StringObjectC2ERNS_12JSGlobalDataEPNS_9StructureE 158 __ZN3JSC13JSFinalObject6s_infoE 158 159 __ZN3JSC13SamplingFlags4stopEv 159 160 __ZN3JSC13SamplingFlags5startEv … … 331 332 __ZN3JSC8JSObject3putEPNS_9ExecStateEjNS_7JSValueE 332 333 __ZN3JSC8JSObject6s_infoE 334 __ZN3JSC8JSString6s_infoE 333 335 __ZN3JSC8Profiler13stopProfilingEPNS_9ExecStateERKNS_7UStringE 334 336 __ZN3JSC8Profiler14startProfilingEPNS_9ExecStateERKNS_7UStringE -
trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
r96809 r96831 304 304 ?retrieveCaller@Interpreter@JSC@@QBE?AVJSValue@2@PAVExecState@2@PAVJSFunction@2@@Z 305 305 ?retrieveLastCaller@Interpreter@JSC@@QBEXPAVExecState@2@AAH1AAVUString@2@AAVJSValue@2@@Z 306 ?s_info@JSAPIValueWrapper@JSC@@2UClassInfo@2@B 307 ?s_info@JSByteArray@JSC@@2UClassInfo@2@B 308 ?s_info@JSFinalObject@JSC@@2UClassInfo@2@B 306 309 ?setAccessorDescriptor@PropertyDescriptor@JSC@@QAEXVJSValue@2@0I@Z 307 310 ?setConfigurable@PropertyDescriptor@JSC@@QAEX_N@Z -
trunk/Source/JavaScriptCore/runtime/ClassInfo.h
r96406 r96831 42 42 &ClassName::visitChildren, \ 43 43 &ClassName::getCallData \ 44 } 44 }, \ 45 sizeof(ClassName) 45 46 46 47 struct ClassInfo { … … 80 81 81 82 MethodTable methodTable; 83 84 size_t cellSize; 82 85 }; 83 86 -
trunk/Source/JavaScriptCore/runtime/JSByteArray.cpp
r95936 r96831 34 34 namespace JSC { 35 35 36 const ClassInfo JSByteArray::s_ defaultInfo = { "ByteArray", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSByteArray) };36 const ClassInfo JSByteArray::s_info = { "ByteArray", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSByteArray) }; 37 37 38 38 JSByteArray::JSByteArray(ExecState* exec, Structure* structure, ByteArray* storage) -
trunk/Source/JavaScriptCore/runtime/JSByteArray.h
r95901 r96831 87 87 } 88 88 89 static Structure* createStructure(JSGlobalData&, JSGlobalObject*, JSValue prototype, const JSC::ClassInfo* = &s_ defaultInfo);89 static Structure* createStructure(JSGlobalData&, JSGlobalObject*, JSValue prototype, const JSC::ClassInfo* = &s_info); 90 90 91 91 virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&); … … 97 97 virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, EnumerationMode mode = ExcludeDontEnumProperties); 98 98 99 static const ClassInfo s_ defaultInfo;99 static const ClassInfo s_info; 100 100 101 101 size_t length() const { return m_storage->length(); } -
trunk/Source/JavaScriptCore/runtime/JSCell.h
r96673 r96831 320 320 { 321 321 #if ENABLE(GC_VALIDATION) 322 ASSERT(sizeof(T) == T::s_info.cellSize); 322 323 ASSERT(!heap.globalData()->isInitializingObject()); 323 324 heap.globalData()->setInitializingObject(true); -
trunk/Source/JavaScriptCore/runtime/JSNotAnObject.cpp
r96381 r96831 36 36 37 37 ASSERT_CLASS_FITS_IN_CELL(JSNotAnObject); 38 39 const ClassInfo JSNotAnObject::s_info = { "Object", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSNotAnObject) }; 38 40 39 41 // JSValue methods -
trunk/Source/JavaScriptCore/runtime/JSNotAnObject.h
r96381 r96831 59 59 } 60 60 61 static const ClassInfo s_info; 62 61 63 private: 62 64 -
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r96446 r96831 49 49 50 50 const ClassInfo JSObject::s_info = { "Object", 0, 0, 0, CREATE_METHOD_TABLE(JSObject) }; 51 52 const ClassInfo JSFinalObject::s_info = { "Object", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSFinalObject) }; 51 53 52 54 static inline void getClassPropertyNames(ExecState* exec, const ClassInfo* classInfo, PropertyNameArray& propertyNames, EnumerationMode mode) -
trunk/Source/JavaScriptCore/runtime/JSObject.h
r96755 r96831 366 366 } 367 367 368 static const ClassInfo s_info; 369 368 370 protected: 369 371 void finishCreation(JSGlobalData& globalData) -
trunk/Source/JavaScriptCore/runtime/JSStaticScopeObject.cpp
r96446 r96831 32 32 namespace JSC { 33 33 ASSERT_CLASS_FITS_IN_CELL(JSStaticScopeObject); 34 35 const ClassInfo JSStaticScopeObject::s_info = { "Object", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSStaticScopeObject) }; 34 36 35 37 void JSStaticScopeObject::visitChildren(JSCell* cell, SlotVisitor& visitor) -
trunk/Source/JavaScriptCore/runtime/JSStaticScopeObject.h
r96446 r96831 51 51 static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue proto) { return Structure::create(globalData, globalObject, proto, TypeInfo(ObjectType, StructureFlags), &s_info); } 52 52 53 static const ClassInfo s_info; 54 53 55 protected: 54 56 void finishCreation(ExecState* exec, const Identifier& identifier, JSValue value, unsigned attributes) -
trunk/Source/JavaScriptCore/runtime/StrictEvalActivation.cpp
r96446 r96831 29 29 namespace JSC { 30 30 31 const ClassInfo StrictEvalActivation::s_info = { "Object", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(StrictEvalActivation) }; 32 31 33 StrictEvalActivation::StrictEvalActivation(ExecState* exec) 32 34 : JSNonFinalObject(exec->globalData(), exec->globalData().strictEvalActivationStructure.get()) -
trunk/Source/JavaScriptCore/runtime/StrictEvalActivation.h
r96446 r96831 50 50 } 51 51 52 static const ClassInfo s_info; 53 52 54 protected: 53 55 static const unsigned StructureFlags = IsEnvironmentRecord | JSNonFinalObject::StructureFlags;
Note:
See TracChangeset
for help on using the changeset viewer.