Ignore:
Timestamp:
Aug 6, 2010, 7:55:54 AM (15 years ago)
Author:
[email protected]
Message:

2010-08-06 Nathan Lawrence <[email protected]>

Reviewed by Geoffrey Garen.

https://bugs.webkit.org/show_bug.cgi?id=43207

WeakGCPtr's should instead of directly pointing to the GC'd object
should be directed to an array of pointers that can be updated for
movable objects.

  • Android.mk:
  • GNUmakefile.am:
  • JavaScriptCore.exp:
  • JavaScriptCore.gypi:
  • JavaScriptCore.pro:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/Collector.cpp: (JSC::Heap::destroy): (JSC::Heap::allocateBlock): (JSC::Heap::freeBlock): (JSC::Heap::updateWeakGCHandles): (JSC::WeakGCHandlePool::update): (JSC::Heap::addWeakGCHandle): (JSC::Heap::markRoots):
  • runtime/Collector.h: (JSC::Heap::weakGCHandlePool):
  • runtime/GCHandle.cpp: Added. (JSC::WeakGCHandle::pool): (JSC::WeakGCHandlePool::WeakGCHandlePool): (JSC::WeakGCHandlePool::allocate): (JSC::WeakGCHandlePool::free): (JSC::WeakGCHandlePool::operator new):
  • runtime/GCHandle.h: Added. (JSC::WeakGCHandle::isValidPtr): (JSC::WeakGCHandle::isPtr): (JSC::WeakGCHandle::isNext): (JSC::WeakGCHandle::invalidate): (JSC::WeakGCHandle::get): (JSC::WeakGCHandle::set): (JSC::WeakGCHandle::getNextInFreeList): (JSC::WeakGCHandle::setNextInFreeList): (JSC::WeakGCHandlePool::isFull):
  • runtime/WeakGCPtr.h: (JSC::WeakGCPtr::WeakGCPtr): (JSC::WeakGCPtr::~WeakGCPtr): (JSC::WeakGCPtr::get): (JSC::WeakGCPtr::clear): (JSC::WeakGCPtr::assign): (JSC::get):
File:
1 edited

Legend:

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

    r64801 r64849  
    513513                DD2724691208D1FF00F9ABE7 /* AlignedMemoryAllocator.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2724671208D1FF00F9ABE7 /* AlignedMemoryAllocator.h */; settings = {ATTRIBUTES = (Private, ); }; };
    514514                DD377CBC12072C18006A2517 /* Bitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = DD377CBB12072C18006A2517 /* Bitmap.h */; settings = {ATTRIBUTES = (Private, ); }; };
     515                DDE82AD31209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
     516                DDE82AD41209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
     517                DDE82AD51209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
     518                DDE82AD61209D955005C1756 /* GCHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE82AD21209D955005C1756 /* GCHandle.h */; };
     519                DDE82AD71209D955005C1756 /* GCHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDE82AD11209D955005C1756 /* GCHandle.cpp */; };
     520                DDE82AD81209D955005C1756 /* GCHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = DDE82AD21209D955005C1756 /* GCHandle.h */; settings = {ATTRIBUTES = (Private, ); }; };
    515521                DDF7ABD411F60ED200108E36 /* GCActivityCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF7ABD211F60ED200108E36 /* GCActivityCallback.h */; };
    516522                DDF7ABD511F60ED200108E36 /* GCActivityCallbackCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDF7ABD311F60ED200108E36 /* GCActivityCallbackCF.cpp */; };
     
    10591065                DD2724671208D1FF00F9ABE7 /* AlignedMemoryAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlignedMemoryAllocator.h; sourceTree = "<group>"; };
    10601066                DD377CBB12072C18006A2517 /* Bitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bitmap.h; sourceTree = "<group>"; };
     1067                DDE82AD11209D955005C1756 /* GCHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GCHandle.cpp; sourceTree = "<group>"; };
     1068                DDE82AD21209D955005C1756 /* GCHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCHandle.h; sourceTree = "<group>"; };
    10611069                DDF7ABD211F60ED200108E36 /* GCActivityCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCActivityCallback.h; sourceTree = "<group>"; };
    10621070                DDF7ABD311F60ED200108E36 /* GCActivityCallbackCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GCActivityCallbackCF.cpp; sourceTree = "<group>"; };
     
    16251633                                F692A85C0255597D01FF60F7 /* FunctionPrototype.cpp */,
    16261634                                F692A85D0255597D01FF60F7 /* FunctionPrototype.h */,
     1635                                DDE82AD11209D955005C1756 /* GCHandle.cpp */,
     1636                                DDE82AD21209D955005C1756 /* GCHandle.h */,
    16271637                                BC02E9B80E184545000F9297 /* GetterSetter.cpp */,
    16281638                                BC337BDE0E1AF0B80076918A /* GetterSetter.h */,
     
    19131923                                1440074A0A536CC20005F061 /* NodeList.h in Headers */,
    19141924                                DD2724681208D1FF00F9ABE7 /* AlignedMemoryAllocator.h in Headers */,
     1925                                DDE82AD61209D955005C1756 /* GCHandle.h in Headers */,
    19151926                        );
    19161927                        runOnlyForDeploymentPostprocessing = 0;
     
    22152226                                DDF7ABD411F60ED200108E36 /* GCActivityCallback.h in Headers */,
    22162227                                DD2724691208D1FF00F9ABE7 /* AlignedMemoryAllocator.h in Headers */,
     2228                                DDE82AD81209D955005C1756 /* GCHandle.h in Headers */,
    22172229                        );
    22182230                        runOnlyForDeploymentPostprocessing = 0;
     
    24762488                                1440063F0A53598A0005F061 /* Node.c in Sources */,
    24772489                                1440074B0A536CC20005F061 /* NodeList.c in Sources */,
     2490                                DDE82AD51209D955005C1756 /* GCHandle.cpp in Sources */,
    24782491                        );
    24792492                        runOnlyForDeploymentPostprocessing = 0;
     
    24842497                        files = (
    24852498                                1440F6100A4F85670005F061 /* testapi.c in Sources */,
     2499                                DDE82AD41209D955005C1756 /* GCHandle.cpp in Sources */,
    24862500                        );
    24872501                        runOnlyForDeploymentPostprocessing = 0;
     
    26632677                                DDF7ABD511F60ED200108E36 /* GCActivityCallbackCF.cpp in Sources */,
    26642678                                8627E5EB11F1281900A313B5 /* PageAllocation.cpp in Sources */,
     2679                                DDE82AD71209D955005C1756 /* GCHandle.cpp in Sources */,
    26652680                        );
    26662681                        runOnlyForDeploymentPostprocessing = 0;
     
    26712686                        files = (
    26722687                                932F5BDD0822A1C700736975 /* jsc.cpp in Sources */,
     2688                                DDE82AD31209D955005C1756 /* GCHandle.cpp in Sources */,
    26732689                        );
    26742690                        runOnlyForDeploymentPostprocessing = 0;
Note: See TracChangeset for help on using the changeset viewer.