Changeset 30413 in webkit for trunk/JavaScriptCore/API


Ignore:
Timestamp:
Feb 19, 2008, 2:09:48 PM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Darin.

Change OpaqueJSClass and RootObject to start with a ref count of 1.


  • API/JSClassRef.cpp: (OpaqueJSClass::OpaqueJSClass): (OpaqueJSClass::createNoAutomaticPrototype): (OpaqueJSClass::create):
  • API/JSClassRef.h:
  • API/JSObjectRef.cpp: (JSClassCreate):
  • bindings/runtime_root.cpp: (KJS::Bindings::RootObject::create): (KJS::Bindings::RootObject::RootObject):
Location:
trunk/JavaScriptCore/API
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/API/JSClassRef.cpp

    r30122 r30413  
    4141OpaqueJSClass::OpaqueJSClass(const JSClassDefinition* definition, OpaqueJSClass* protoClass)
    4242    // FIXME: <rdar://problem/4949018>
    43     : RefCounted<OpaqueJSClass>(0)
    44     , className(definition->className)
     43    : className(definition->className)
    4544    , parentClass(definition->parentClass)
    4645    , prototypeClass(0)
     
    10099}
    101100
    102 JSClassRef OpaqueJSClass::createNoAutomaticPrototype(const JSClassDefinition* definition)
     101PassRefPtr<OpaqueJSClass> OpaqueJSClass::createNoAutomaticPrototype(const JSClassDefinition* definition)
    103102{
    104     return new OpaqueJSClass(definition, 0);
     103    return adoptRef(new OpaqueJSClass(definition, 0));
    105104}
    106105
     
    112111}
    113112
    114 JSClassRef OpaqueJSClass::create(const JSClassDefinition* definition)
     113PassRefPtr<OpaqueJSClass> OpaqueJSClass::create(const JSClassDefinition* definition)
    115114{
    116115    if (const JSStaticFunction* staticFunctions = definition->staticFunctions) {
     
    124123        JSClassDefinition objectDefinition = *definition;
    125124        objectDefinition.staticFunctions = 0;
    126         return new OpaqueJSClass(&objectDefinition, protoClass);
     125        return adoptRef(new OpaqueJSClass(&objectDefinition, protoClass));
    127126    }
    128127
    129     return new OpaqueJSClass(definition, 0);
     128    return adoptRef(new OpaqueJSClass(definition, 0));
    130129}
    131130
  • trunk/JavaScriptCore/API/JSClassRef.h

    r29663 r30413  
    5858
    5959struct OpaqueJSClass : public RefCounted<OpaqueJSClass> {
    60     static OpaqueJSClass* create(const JSClassDefinition*);
    61     static OpaqueJSClass* createNoAutomaticPrototype(const JSClassDefinition*);
     60    static PassRefPtr<OpaqueJSClass> create(const JSClassDefinition*);
     61    static PassRefPtr<OpaqueJSClass> createNoAutomaticPrototype(const JSClassDefinition*);
    6262    ~OpaqueJSClass();
    6363   
  • trunk/JavaScriptCore/API/JSObjectRef.cpp

    r30040 r30413  
    5050{
    5151    JSLock lock;
    52     JSClassRef jsClass = (definition->attributes & kJSClassAttributeNoAutomaticPrototype)
     52    RefPtr<OpaqueJSClass> jsClass = (definition->attributes & kJSClassAttributeNoAutomaticPrototype)
    5353        ? OpaqueJSClass::createNoAutomaticPrototype(definition)
    5454        : OpaqueJSClass::create(definition);
    5555   
    56     return JSClassRetain(jsClass);
     56    return jsClass.release().releaseRef();
    5757}
    5858
Note: See TracChangeset for help on using the changeset viewer.