Ignore:
Timestamp:
Dec 13, 2005, 3:06:10 AM (19 years ago)
Author:
mjs
Message:

JavaScriptCore:

Reviewed by Eric.

  • added a new HashCountedSet class for the common pattern of mapping items to counts that can change
  • kxmlcore/HashCountedSet.h: Added. (KXMLCore::HashCountedSet::*): Implemented, on top of HashMap.
  • kxmlcore/HashMap.h: (KXMLCore::HashMap::add): New method - does not replace existing value if key already present but otherwise like set(). (KXMLCore::HashMap::set): Improved comments.
  • kxmlcore/HashMapPtrSpec.h: (KXMLCore::HashMap::add): Added to specializations too.
  • JavaScriptCore.xcodeproj/project.pbxproj: Add new file.
  • kxmlcore/HashFunctions.h: Added include of stdint.h
  • replaced the custom hashtable for values protected from GC with HashCountedSet
  • kjs/collector.cpp: (KJS::Collector::protect): Moved code here from ProtectedValues::increaseProtectCount since the code is so simple now. (KJS::Collector::unprotect): Ditto for ProtectedValues::decreaseProtectCount. (KJS::Collector::markProtectedObjects): Updated for new way of doing things, now simpler and safer. (KJS::Collector::numReferencedObjects): ditto (KJS::Collector::rootObjectClasses): ditto
  • kjs/collector.h: Added protect and unprotect static methods
  • kjs/protect.h: (KJS::gcProtect): Updated for removal of ProtectedValues class (KJS::gcUnprotect): likewise
  • kjs/protected_values.cpp: Removed.
  • kjs/protected_values.h: Removed.

WebCore:

Reviewed by Eric.

  • updated for new HashCountedSet class
  • ForwardingHeaders/kxmlcore/HashCountedSet.h: Added forwarding header.
  • khtml/ecma/kjs_binding.cpp: Moved #define to disable pointer specialization higher in the file.
File:
1 edited

Legend:

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

    r11472 r11561  
    3434                65621E6D089E859700760F35 /* property_slot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65621E6B089E859700760F35 /* property_slot.cpp */; };
    3535                65621E6E089E859700760F35 /* property_slot.h in Headers */ = {isa = PBXBuildFile; fileRef = 65621E6C089E859700760F35 /* property_slot.h */; settings = {ATTRIBUTES = (Private, ); }; };
     36                657EEBC0094E445E008C9C7B /* HashCountedSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 657EEBBF094E445E008C9C7B /* HashCountedSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
    3637                6580F796094070560082C219 /* PassRefPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 6580F795094070560082C219 /* PassRefPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
    3738                65C647B4093EF8D60022C380 /* RefPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 65C647B3093EF8D60022C380 /* RefPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    116117                932F5B850822A1C700736975 /* npruntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 5199B1BE061B65BC0070C006 /* npruntime.h */; settings = {ATTRIBUTES = (Private, ); }; };
    117118                932F5B880822A1C700736975 /* protect.h in Headers */ = {isa = PBXBuildFile; fileRef = 65C02FBB0637462A003E7EE6 /* protect.h */; settings = {ATTRIBUTES = (Private, ); }; };
    118                 932F5B890822A1C700736975 /* protected_values.h in Headers */ = {isa = PBXBuildFile; fileRef = 650B68D90639033F009D42DE /* protected_values.h */; settings = {ATTRIBUTES = (Private, ); }; };
    119119                932F5B8A0822A1C700736975 /* WebScriptObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 51863F6F065420E800E9E8DD /* WebScriptObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
    120120                932F5B8B0822A1C700736975 /* WebScriptObjectPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 700DA117065984CE00747C0B /* WebScriptObjectPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    175175                932F5BCA0822A1C700736975 /* c_class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5182A53A06012C3000CBD2F2 /* c_class.cpp */; };
    176176                932F5BCB0822A1C700736975 /* npruntime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5199B1BD061B65BC0070C006 /* npruntime.cpp */; };
    177                 932F5BCD0822A1C700736975 /* protected_values.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 650B68D80639033F009D42DE /* protected_values.cpp */; };
    178177                932F5BCE0822A1C700736975 /* WebScriptObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51863FC406542D3100E9E8DD /* WebScriptObject.mm */; };
    179178                932F5BCF0822A1C700736975 /* jni_objc.mm in Sources */ = {isa = PBXBuildFile; fileRef = 517EF37306D695930007C1BA /* jni_objc.mm */; };
     
    322321                51F0EC9605C88DC700E6DF1B /* objc_utility.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = objc_utility.h; path = bindings/objc/objc_utility.h; sourceTree = "<group>"; };
    323322                51F0EC9705C88DC700E6DF1B /* objc_utility.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = objc_utility.mm; path = bindings/objc/objc_utility.mm; sourceTree = "<group>"; };
    324                 650B68D80639033F009D42DE /* protected_values.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = protected_values.cpp; sourceTree = "<group>"; };
    325                 650B68D90639033F009D42DE /* protected_values.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = protected_values.h; sourceTree = "<group>"; };
    326323                651F6412039D5B5F0078395C /* dtoa.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = dtoa.cpp; sourceTree = "<group>"; };
    327324                651F6413039D5B5F0078395C /* dtoa.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dtoa.h; sourceTree = "<group>"; };
     
    339336                65621E6B089E859700760F35 /* property_slot.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = property_slot.cpp; sourceTree = "<group>"; };
    340337                65621E6C089E859700760F35 /* property_slot.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = property_slot.h; sourceTree = "<group>"; };
     338                657EEBBF094E445E008C9C7B /* HashCountedSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HashCountedSet.h; sourceTree = "<group>"; };
    341339                6580F795094070560082C219 /* PassRefPtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PassRefPtr.h; sourceTree = "<group>"; };
    342340                65C02FBB0637462A003E7EE6 /* protect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = protect.h; sourceTree = "<group>"; };
     
    533531                                65621E6C089E859700760F35 /* property_slot.h */,
    534532                                938772E5038BFE19008635CE /* array_instance.h */,
    535                                 650B68D80639033F009D42DE /* protected_values.cpp */,
    536533                                652C107E08DA7B1E0020887D /* protected_reference.h */,
    537                                 650B68D90639033F009D42DE /* protected_values.h */,
    538534                                F692A84E0255597D01FF60F7 /* array_object.h */,
    539535                                F692A84D0255597D01FF60F7 /* array_object.cpp */,
     
    665661                        isa = PBXGroup;
    666662                        children = (
     663                                657EEBBF094E445E008C9C7B /* HashCountedSet.h */,
    667664                                65C647B3093EF8D60022C380 /* RefPtr.h */,
    668665                                6580F795094070560082C219 /* PassRefPtr.h */,
     
    823820                                932F5B850822A1C700736975 /* npruntime.h in Headers */,
    824821                                932F5B880822A1C700736975 /* protect.h in Headers */,
    825                                 932F5B890822A1C700736975 /* protected_values.h in Headers */,
    826822                                932F5B8A0822A1C700736975 /* WebScriptObject.h in Headers */,
    827823                                932F5B8B0822A1C700736975 /* WebScriptObjectPrivate.h in Headers */,
     
    852848                                65C647B4093EF8D60022C380 /* RefPtr.h in Headers */,
    853849                                6580F796094070560082C219 /* PassRefPtr.h in Headers */,
     850                                657EEBC0094E445E008C9C7B /* HashCountedSet.h in Headers */,
    854851                        );
    855852                        runOnlyForDeploymentPostprocessing = 0;
     
    12141211                                932F5BCA0822A1C700736975 /* c_class.cpp in Sources */,
    12151212                                932F5BCB0822A1C700736975 /* npruntime.cpp in Sources */,
    1216                                 932F5BCD0822A1C700736975 /* protected_values.cpp in Sources */,
    12171213                                932F5BCE0822A1C700736975 /* WebScriptObject.mm in Sources */,
    12181214                                932F5BCF0822A1C700736975 /* jni_objc.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.