diff options
Diffstat (limited to 'Source/WebCore/bindings/js/JSDOMGlobalObject.h')
-rw-r--r-- | Source/WebCore/bindings/js/JSDOMGlobalObject.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/WebCore/bindings/js/JSDOMGlobalObject.h b/Source/WebCore/bindings/js/JSDOMGlobalObject.h index 8eb55c1..4dce7a5 100644 --- a/Source/WebCore/bindings/js/JSDOMGlobalObject.h +++ b/Source/WebCore/bindings/js/JSDOMGlobalObject.h @@ -39,7 +39,7 @@ namespace WebCore { class ScriptExecutionContext; typedef HashMap<const JSC::ClassInfo*, RefPtr<JSC::Structure> > JSDOMStructureMap; - typedef HashMap<const JSC::ClassInfo*, JSC::JSObject*> JSDOMConstructorMap; + typedef HashMap<const JSC::ClassInfo*, JSC::WriteBarrier<JSC::JSObject> > JSDOMConstructorMap; class JSDOMGlobalObject : public JSC::JSGlobalObject { typedef JSC::JSGlobalObject Base; @@ -76,7 +76,6 @@ namespace WebCore { : JSGlobalObjectData(destructor) , evt(0) , m_world(world) - , m_injectedScript(0) { } @@ -85,7 +84,7 @@ namespace WebCore { Event* evt; RefPtr<DOMWrapperWorld> m_world; - JSObject* m_injectedScript; + JSC::WriteBarrier<JSObject> m_injectedScript; }; private: @@ -97,11 +96,12 @@ namespace WebCore { template<class ConstructorClass> inline JSC::JSObject* getDOMConstructor(JSC::ExecState* exec, const JSDOMGlobalObject* globalObject) { - if (JSC::JSObject* constructor = globalObject->constructors().get(&ConstructorClass::s_info)) + if (JSC::JSObject* constructor = globalObject->constructors().get(&ConstructorClass::s_info).get()) return constructor; JSC::JSObject* constructor = new (exec) ConstructorClass(exec, const_cast<JSDOMGlobalObject*>(globalObject)); ASSERT(!globalObject->constructors().contains(&ConstructorClass::s_info)); - globalObject->constructors().set(&ConstructorClass::s_info, constructor); + JSC::WriteBarrier<JSC::JSObject> temp; + globalObject->constructors().add(&ConstructorClass::s_info, temp).first->second.set(exec->globalData(), globalObject, constructor); return constructor; } |