Ignore:
Timestamp:
Dec 18, 2009, 12:46:08 PM (15 years ago)
Author:
[email protected]
Message:

Fixed intermittent failure seen on Windows buildbot, and in other JSC
API clients.

Reviewed by Adam Roben.

Added a WeakGCPtr class and changed OpaqueJSClass::cachedPrototype to
use it, to avoid vending a stale object as a prototype.

  • API/JSClassRef.cpp:

(OpaqueJSClassContextData::OpaqueJSClassContextData):
(OpaqueJSClass::prototype):

  • API/JSClassRef.h: Use WeakGCPtr.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/WeakGCPtr.h: Added.

(JSC::WeakGCPtr::WeakGCPtr):
(JSC::WeakGCPtr::get):
(JSC::WeakGCPtr::clear):
(JSC::WeakGCPtr::operator*):
(JSC::WeakGCPtr::operator->):
(JSC::WeakGCPtr::operator!):
(JSC::WeakGCPtr::operator bool):
(JSC::WeakGCPtr::operator UnspecifiedBoolType):
(JSC::WeakGCPtr::assign):
(JSC::::operator):
(JSC::operator==):
(JSC::operator!=):
(JSC::static_pointer_cast):
(JSC::const_pointer_cast):
(JSC::getPtr): Added WeakGCPtr to the project.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r52329 r52334  
    4545                0BDFFAE00FC6192900D69EF4 /* CrossThreadRefCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BDFFAD40FC6171000D69EF4 /* CrossThreadRefCounted.h */; settings = {ATTRIBUTES = (Private, ); }; };
    4646                0BDFFAE10FC6193100D69EF4 /* OwnFastMallocPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BDFFAD10FC616EC00D69EF4 /* OwnFastMallocPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
     47                14035DB110DBFB2A00FFFFE7 /* WeakGCPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 14035DB010DBFB2A00FFFFE7 /* WeakGCPtr.h */; };
    4748                140566C4107EC255005DBC8D /* JSAPIValueWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0894D50FAFBA2D00001865 /* JSAPIValueWrapper.cpp */; };
    4849                140566D1107EC267005DBC8D /* JSStaticScopeObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7E42C190E3938830065A544 /* JSStaticScopeObject.cpp */; };
     
    562563                0BDFFAD10FC616EC00D69EF4 /* OwnFastMallocPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OwnFastMallocPtr.h; sourceTree = "<group>"; };
    563564                0BDFFAD40FC6171000D69EF4 /* CrossThreadRefCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrossThreadRefCounted.h; sourceTree = "<group>"; };
     565                14035DB010DBFB2A00FFFFE7 /* WeakGCPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeakGCPtr.h; sourceTree = "<group>"; };
    564566                140D17D60E8AD4A9000CD17D /* JSBasePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSBasePrivate.h; sourceTree = "<group>"; };
    565567                141211020A48780900480255 /* minidom.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = minidom.c; path = tests/minidom.c; sourceTree = "<group>"; };
     
    15351537                                65C7A1710A8EAACB00FA37EA /* JSWrapperObject.cpp */,
    15361538                                65C7A1720A8EAACB00FA37EA /* JSWrapperObject.h */,
     1539                                A7C2216B10C7469C00F97913 /* JSZombie.cpp */,
    15371540                                A7C2216810C745E000F97913 /* JSZombie.h */,
    1538                                 A7C2216B10C7469C00F97913 /* JSZombie.cpp */,
    15391541                                A7E2EA6A0FB460CF00601F06 /* LiteralParser.cpp */,
    15401542                                A7E2EA690FB460CF00601F06 /* LiteralParser.h */,
     
    16091611                                F692A8850255597D01FF60F7 /* UString.cpp */,
    16101612                                F692A8860255597D01FF60F7 /* UString.h */,
     1613                                14BFCE6810CDB1FC00364CCE /* WeakGCMap.h */,
     1614                                14035DB010DBFB2A00FFFFE7 /* WeakGCPtr.h */,
    16111615                                1420BE7A10AA6DDB00F455D2 /* WeakRandom.h */,
    1612                                 14BFCE6810CDB1FC00364CCE /* WeakGCMap.h */,
    16131616                                A7C2216810C745E000F97913 /* JSZombie.h */,
    16141617                                A7C2216B10C7469C00F97913 /* JSZombie.cpp */,
     
    20252028                                1420BE7B10AA6DDB00F455D2 /* WeakRandom.h in Headers */,
    20262029                                8698B86910D44D9400D8D01B /* StringBuilder.h in Headers */,
     2030                                14035DB110DBFB2A00FFFFE7 /* WeakGCPtr.h in Headers */,
    20272031                        );
    20282032                        runOnlyForDeploymentPostprocessing = 0;
Note: See TracChangeset for help on using the changeset viewer.