Title: [154708] trunk/Source/WebCore
Revision
154708
Author
[email protected]
Date
2013-08-27 14:26:58 -0700 (Tue, 27 Aug 2013)

Log Message

Stop using deleteAllValues in CClass
https://bugs.webkit.org/show_bug.cgi?id=120376

Reviewed by Andreas Kling.

* bridge/c/c_class.cpp:
(JSC::Bindings::CClass::CClass):
(JSC::Bindings::CClass::~CClass):
(JSC::Bindings::CClass::methodNamed):
(JSC::Bindings::CClass::fieldNamed):
* bridge/c/c_class.h:
* bridge/jsc/BridgeJSC.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (154707 => 154708)


--- trunk/Source/WebCore/ChangeLog	2013-08-27 20:49:57 UTC (rev 154707)
+++ trunk/Source/WebCore/ChangeLog	2013-08-27 21:26:58 UTC (rev 154708)
@@ -1,3 +1,18 @@
+2013-08-27  Anders Carlsson  <[email protected]>
+
+        Stop using deleteAllValues in CClass
+        https://bugs.webkit.org/show_bug.cgi?id=120376
+
+        Reviewed by Andreas Kling.
+
+        * bridge/c/c_class.cpp:
+        (JSC::Bindings::CClass::CClass):
+        (JSC::Bindings::CClass::~CClass):
+        (JSC::Bindings::CClass::methodNamed):
+        (JSC::Bindings::CClass::fieldNamed):
+        * bridge/c/c_class.h:
+        * bridge/jsc/BridgeJSC.h:
+
 2013-08-27  Benjamin Poulain  <[email protected]>
 
         Clean ClassList and DOMSettableTokenList

Modified: trunk/Source/WebCore/bridge/c/c_class.cpp (154707 => 154708)


--- trunk/Source/WebCore/bridge/c/c_class.cpp	2013-08-27 20:49:57 UTC (rev 154707)
+++ trunk/Source/WebCore/bridge/c/c_class.cpp	2013-08-27 21:26:58 UTC (rev 154708)
@@ -41,16 +41,13 @@
 
 CClass::CClass(NPClass* aClass)
 {
-    _isa = aClass;
+    m_isa = aClass;
 }
 
 CClass::~CClass()
 {
-    deleteAllValues(_methods);
-    _methods.clear();
-
-    deleteAllValues(_fields);
-    _fields.clear();
+    m_methods.clear();
+    m_fields.clear();
 }
 
 typedef HashMap<NPClass*, CClass*> ClassesByIsAMap;
@@ -74,16 +71,16 @@
 {
     String name(propertyName.publicName());
     
-    if (Method* method = _methods.get(name.impl()))
+    if (Method* method = m_methods.get(name.impl()))
         return method;
 
     NPIdentifier ident = _NPN_GetStringIdentifier(name.ascii().data());
     const CInstance* inst = static_cast<const CInstance*>(instance);
     NPObject* obj = inst->getObject();
-    if (_isa->hasMethod && _isa->hasMethod(obj, ident)){
-        Method* method = new CMethod(ident); // deleted in the CClass destructor
-        _methods.set(name.impl(), method);
-        return method;
+    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();
     }
     
     return 0;
@@ -93,18 +90,18 @@
 {
     String name(propertyName.publicName());
     
-    Field* aField = _fields.get(name.impl());
-    if (aField)
-        return aField;
-    
+    if (Field* field = m_fields.get(name.impl()))
+        return field;
+
     NPIdentifier ident = _NPN_GetStringIdentifier(name.ascii().data());
     const CInstance* inst = static_cast<const CInstance*>(instance);
     NPObject* obj = inst->getObject();
-    if (_isa->hasProperty && _isa->hasProperty(obj, ident)){
-        aField = new CField(ident); // deleted in the CClass destructor
-        _fields.set(name.impl(), aField);
+    if (m_isa->hasProperty && m_isa->hasProperty(obj, ident)) {
+        OwnPtr<Field> field = adoptPtr(new CField(ident));
+        m_fields.set(name.impl(), field.release());
     }
-    return aField;
+
+    return 0;
 }
 
 } } // namespace JSC::Bindings

Modified: trunk/Source/WebCore/bridge/c/c_class.h (154707 => 154708)


--- trunk/Source/WebCore/bridge/c/c_class.h	2013-08-27 20:49:57 UTC (rev 154707)
+++ trunk/Source/WebCore/bridge/c/c_class.h	2013-08-27 21:26:58 UTC (rev 154708)
@@ -47,9 +47,9 @@
     virtual Field* fieldNamed(PropertyName, Instance*) const;
 
 private:
-    NPClass* _isa;
-    mutable MethodMap _methods;
-    mutable FieldMap _fields;
+    NPClass* m_isa;
+    mutable HashMap<RefPtr<StringImpl>, OwnPtr<Method>> m_methods;
+    mutable HashMap<RefPtr<StringImpl>, OwnPtr<Field>> m_fields;
 };
 
 } // namespace Bindings

Modified: trunk/Source/WebCore/bridge/jsc/BridgeJSC.h (154707 => 154708)


--- trunk/Source/WebCore/bridge/jsc/BridgeJSC.h	2013-08-27 20:49:57 UTC (rev 154707)
+++ trunk/Source/WebCore/bridge/jsc/BridgeJSC.h	2013-08-27 21:26:58 UTC (rev 154708)
@@ -134,9 +134,6 @@
 
 const char* signatureForParameters(const ArgList&);
 
-typedef HashMap<RefPtr<StringImpl>, Method*> MethodMap;
-typedef HashMap<RefPtr<StringImpl>, Field*> FieldMap;
-
 } // namespace Bindings
 
 } // namespace JSC
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to