Ignore:
Timestamp:
Apr 12, 2011, 4:27:37 PM (14 years ago)
Author:
[email protected]
Message:

2011-04-12 Oliver Hunt <[email protected]>

Reviewed by Geoffrey Garen.

Make API callback objects use weak handles to run their finalizers
https://bugs.webkit.org/show_bug.cgi?id=58389

Make the API object's private data struct act as a finalizer for
an api object if the callback object has a API defined finalizer.

  • API/JSCallbackObject.cpp: (JSC::JSCallbackObjectData::finalize):
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (JSC::::init):
  • heap/Handle.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/JSCallbackObject.h

    r81272 r83661  
    3535namespace JSC {
    3636
    37 struct JSCallbackObjectData {
     37struct JSCallbackObjectData : WeakHandleOwner {
    3838    JSCallbackObjectData(void* privateData, JSClassRef jsClass)
    3939        : privateData(privateData)
     
    111111    };
    112112    OwnPtr<JSPrivatePropertyMap> m_privateProperties;
     113    virtual void finalize(Handle<Unknown>, void*);
    113114};
    114115
     
    119120    JSCallbackObject(ExecState*, JSGlobalObject*, NonNullPassRefPtr<Structure>, JSClassRef, void* data);
    120121    JSCallbackObject(JSClassRef, NonNullPassRefPtr<Structure>);
    121     virtual ~JSCallbackObject();
    122122
    123123    void setPrivate(void* data);
Note: See TracChangeset for help on using the changeset viewer.