• oliver@apple.com's avatar
    2011-05-25 Oliver Hunt <oliver@apple.com> · 5652af77
    oliver@apple.com authored
            Reviewed by Geoffrey Garen.
    
            Make RegExp GC allocated
            https://bugs.webkit.org/show_bug.cgi?id=61490
    
            Make RegExp GC allocated.  Basically mechanical change to replace
            most use of [Pass]RefPtr<RegExp> with RegExp* or WriteBarrier<RegExp>
            where actual ownership happens.
    
            Made the RegExpCache use Strong<> references currently to avoid any
            changes in behaviour.
    
            * JavaScriptCore.exp:
            * bytecode/CodeBlock.cpp:
            (JSC::CodeBlock::visitAggregate):
            * bytecode/CodeBlock.h:
            (JSC::CodeBlock::addRegExp):
            * bytecompiler/BytecodeGenerator.cpp:
            (JSC::BytecodeGenerator::addRegExp):
            (JSC::BytecodeGenerator::emitNewRegExp):
            * bytecompiler/BytecodeGenerator.h:
            * runtime/JSCell.h:
            * runtime/JSGlobalData.cpp:
            (JSC::JSGlobalData::JSGlobalData):
            (JSC::JSGlobalData::clearBuiltinStructures):
            (JSC::JSGlobalData::addRegExpToTrace):
            * runtime/JSGlobalData.h:
            * runtime/JSGlobalObject.cpp:
            (JSC::JSGlobalObject::reset):
            * runtime/RegExp.cpp:
            (JSC::RegExp::RegExp):
            (JSC::RegExp::create):
            (JSC::RegExp::invalidateCode):
            * runtime/RegExp.h:
            (JSC::RegExp::createStructure):
            * runtime/RegExpCache.cpp:
            (JSC::RegExpCache::lookupOrCreate):
            (JSC::RegExpCache::create):
            * runtime/RegExpCache.h:
            * runtime/RegExpConstructor.cpp:
            (JSC::constructRegExp):
            * runtime/RegExpObject.cpp:
            (JSC::RegExpObject::RegExpObject):
            (JSC::RegExpObject::visitChildren):
            * runtime/RegExpObject.h:
            (JSC::RegExpObject::setRegExp):
            (JSC::RegExpObject::RegExpObjectData::RegExpObjectData):
            * runtime/RegExpPrototype.cpp:
            (JSC::RegExpPrototype::RegExpPrototype):
            (JSC::regExpProtoFuncCompile):
            * runtime/RegExpPrototype.h:
            * runtime/StringPrototype.cpp:
            (JSC::stringProtoFuncMatch):
            (JSC::stringProtoFuncSearch):
    2011-05-25  James Robinson  <jamesr@chromium.org>
    
            Reviewed by Geoffrey Garen
    
            CachedResource overhead size calculation ignores the actual size of the URL
            https://bugs.webkit.org/show_bug.cgi?id=61481
    
            CachedResource::overheadSize is used to determine the size of an entry in the memory cache to know when to evict
            it.  When the resource is a large data: URL, for example representing image or audio data, the URL size itself
            can be significant.
    
            This patch uses an estimate of actual number of bytes used by the URL that is valid for ASCII urls and close for
            other types of strings instead of a fixed number.
    
            * loader/cache/CachedResource.cpp:
            (WebCore::CachedResource::overheadSize):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    5652af77
qt_runtime.cpp 70.2 KB