REGRESSION(r154708): It broke all plugin tests on GTK and Qt WK1
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Aug 2013 14:03:38 +0000 (14:03 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Aug 2013 14:03:38 +0000 (14:03 +0000)
https://bugs.webkit.org/show_bug.cgi?id=120398

Reviewed by Anders Carlsson.

* bridge/c/c_class.cpp:
(JSC::Bindings::CClass::methodNamed): Keep the pointer of the new CMethod object
to return it after it's adopted by the new HashMap entry.
(JSC::Bindings::CClass::fieldNamed): The pointer to the newly created CField object
should be returned in this branch, matching the behavior before r154708.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@154741 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/bridge/c/c_class.cpp

index 6d674e6..688fee0 100644 (file)
@@ -1,3 +1,16 @@
+2013-08-28  Zan Dobersek  <zdobersek@igalia.com>
+
+        REGRESSION(r154708): It broke all plugin tests on GTK and Qt WK1
+        https://bugs.webkit.org/show_bug.cgi?id=120398
+
+        Reviewed by Anders Carlsson.
+
+        * bridge/c/c_class.cpp:
+        (JSC::Bindings::CClass::methodNamed): Keep the pointer of the new CMethod object
+        to return it after it's adopted by the new HashMap entry.
+        (JSC::Bindings::CClass::fieldNamed): The pointer to the newly created CField object
+        should be returned in this branch, matching the behavior before r154708.
+
 2013-08-28  Antti Koivisto  <antti@apple.com>
 
         Fix Qt no-libxml2 build.
index 72bf2cd..e964520 100644 (file)
@@ -78,9 +78,9 @@ Method* CClass::methodNamed(PropertyName propertyName, Instance* instance) const
     const CInstance* inst = static_cast<const CInstance*>(instance);
     NPObject* obj = inst->getObject();
     if (m_isa->hasMethod && m_isa->hasMethod(obj, ident)) {
-        OwnPtr<Method> method = adoptPtr(new CMethod(ident));
-        m_methods.set(name.impl(), method.release());
-        return method.get();
+        Method* method = new CMethod(ident);
+        m_methods.set(name.impl(), adoptPtr(method));
+        return method;
     }
     
     return 0;
@@ -97,8 +97,9 @@ Field* CClass::fieldNamed(PropertyName propertyName, Instance* instance) const
     const CInstance* inst = static_cast<const CInstance*>(instance);
     NPObject* obj = inst->getObject();
     if (m_isa->hasProperty && m_isa->hasProperty(obj, ident)) {
-        OwnPtr<Field> field = adoptPtr(new CField(ident));
-        m_fields.set(name.impl(), field.release());
+        Field* field = new CField(ident);
+        m_fields.set(name.impl(), adoptPtr(field));
+        return field;
     }
 
     return 0;