Changeset 92706 in webkit for trunk/Source/JavaScriptCore/API/JSCallbackObject.h
- Timestamp:
- Aug 9, 2011, 1:46:17 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/API/JSCallbackObject.h
r91194 r92706 115 115 116 116 117 template <class Base>118 class JSCallbackObject : public Base{117 template <class Parent> 118 class JSCallbackObject : public Parent { 119 119 protected: 120 120 JSCallbackObject(ExecState*, JSGlobalObject*, Structure*, JSClassRef, void* data); 121 121 JSCallbackObject(JSGlobalData&, JSClassRef, Structure*); 122 122 // We'd like to use the placement version of operator new defined in JSCell, but 123 // we can't because Baseis a template argument, so we just duplicate the same123 // we can't because Parent is a template argument, so we just duplicate the same 124 124 // functionality here. 125 125 void* operator new(size_t, void* ptr) { return ptr; } 126 126 127 127 public: 128 typedef Parent Base; 129 128 130 static JSCallbackObject* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef classRef, void* data) 129 131 { … … 145 147 static Structure* createStructure(JSGlobalData& globalData, JSValue proto) 146 148 { 147 return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), Base::AnonymousSlotCount, &s_info);149 return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), Parent::AnonymousSlotCount, &s_info); 148 150 } 149 151 … … 164 166 165 167 protected: 166 static const unsigned StructureFlags = ProhibitsPropertyCaching | OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | Base::StructureFlags;168 static const unsigned StructureFlags = ProhibitsPropertyCaching | OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | Parent::StructureFlags; 167 169 168 170 private: … … 189 191 virtual void visitChildren(SlotVisitor& visitor) 190 192 { 191 ASSERT_GC_OBJECT_INHERITS((static_cast< Base*>(this)), &JSCallbackObject<Base>::s_info);193 ASSERT_GC_OBJECT_INHERITS((static_cast<Parent*>(this)), &JSCallbackObject<Parent>::s_info); 192 194 COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); 193 ASSERT( Base::structure()->typeInfo().overridesVisitChildren());194 Base::visitChildren(visitor);195 ASSERT(Parent::structure()->typeInfo().overridesVisitChildren()); 196 Parent::visitChildren(visitor); 195 197 m_callbackObjectData->visitChildren(visitor); 196 198 }
Note:
See TracChangeset
for help on using the changeset viewer.