Changeset 154708 in webkit


Ignore:
Timestamp:
Aug 27, 2013 2:26:58 PM (11 years ago)
Author:
andersca@apple.com
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:
Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r154707 r154708  
     12013-08-27  Anders Carlsson  <andersca@apple.com>
     2
     3        Stop using deleteAllValues in CClass
     4        https://bugs.webkit.org/show_bug.cgi?id=120376
     5
     6        Reviewed by Andreas Kling.
     7
     8        * bridge/c/c_class.cpp:
     9        (JSC::Bindings::CClass::CClass):
     10        (JSC::Bindings::CClass::~CClass):
     11        (JSC::Bindings::CClass::methodNamed):
     12        (JSC::Bindings::CClass::fieldNamed):
     13        * bridge/c/c_class.h:
     14        * bridge/jsc/BridgeJSC.h:
     15
    1162013-08-27  Benjamin Poulain  <benjamin@webkit.org>
    217
  • trunk/Source/WebCore/bridge/c/c_class.cpp

    r129969 r154708  
    4242CClass::CClass(NPClass* aClass)
    4343{
    44     _isa = aClass;
     44    m_isa = aClass;
    4545}
    4646
    4747CClass::~CClass()
    4848{
    49     deleteAllValues(_methods);
    50     _methods.clear();
    51 
    52     deleteAllValues(_fields);
    53     _fields.clear();
     49    m_methods.clear();
     50    m_fields.clear();
    5451}
    5552
     
    7572    String name(propertyName.publicName());
    7673   
    77     if (Method* method = _methods.get(name.impl()))
     74    if (Method* method = m_methods.get(name.impl()))
    7875        return method;
    7976
     
    8178    const CInstance* inst = static_cast<const CInstance*>(instance);
    8279    NPObject* obj = inst->getObject();
    83     if (_isa->hasMethod && _isa->hasMethod(obj, ident)){
    84         Method* method = new CMethod(ident); // deleted in the CClass destructor
    85         _methods.set(name.impl(), method);
    86         return method;
     80    if (m_isa->hasMethod && m_isa->hasMethod(obj, ident)) {
     81        OwnPtr<Method> method = adoptPtr(new CMethod(ident));
     82        m_methods.set(name.impl(), method.release());
     83        return method.get();
    8784    }
    8885   
     
    9491    String name(propertyName.publicName());
    9592   
    96     Field* aField = _fields.get(name.impl());
    97     if (aField)
    98         return aField;
    99    
     93    if (Field* field = m_fields.get(name.impl()))
     94        return field;
     95
    10096    NPIdentifier ident = _NPN_GetStringIdentifier(name.ascii().data());
    10197    const CInstance* inst = static_cast<const CInstance*>(instance);
    10298    NPObject* obj = inst->getObject();
    103     if (_isa->hasProperty && _isa->hasProperty(obj, ident)){
    104         aField = new CField(ident); // deleted in the CClass destructor
    105         _fields.set(name.impl(), aField);
     99    if (m_isa->hasProperty && m_isa->hasProperty(obj, ident)) {
     100        OwnPtr<Field> field = adoptPtr(new CField(ident));
     101        m_fields.set(name.impl(), field.release());
    106102    }
    107     return aField;
     103
     104    return 0;
    108105}
    109106
  • trunk/Source/WebCore/bridge/c/c_class.h

    r129969 r154708  
    4848
    4949private:
    50     NPClass* _isa;
    51     mutable MethodMap _methods;
    52     mutable FieldMap _fields;
     50    NPClass* m_isa;
     51    mutable HashMap<RefPtr<StringImpl>, OwnPtr<Method>> m_methods;
     52    mutable HashMap<RefPtr<StringImpl>, OwnPtr<Field>> m_fields;
    5353};
    5454
  • trunk/Source/WebCore/bridge/jsc/BridgeJSC.h

    r154373 r154708  
    135135const char* signatureForParameters(const ArgList&);
    136136
    137 typedef HashMap<RefPtr<StringImpl>, Method*> MethodMap;
    138 typedef HashMap<RefPtr<StringImpl>, Field*> FieldMap;
    139 
    140137} // namespace Bindings
    141138
Note: See TracChangeset for help on using the changeset viewer.