diff options
author | axis <qt-info@nokia.com> | 2009-06-29 12:25:09 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-06-29 12:25:09 (GMT) |
commit | 1a8c89e9eaec05e9f38eae4fbc007d8344015de3 (patch) | |
tree | d87e517cfab9443926841b3ef92ca715a717f54a /src/3rdparty/webkit/JavaScriptCore | |
parent | 78166d5235a5045fdc887febe01d789cac333bb3 (diff) | |
parent | b6171cfbe3b1453a2c46f78db0df4819e4e5e54f (diff) | |
download | Qt-1a8c89e9eaec05e9f38eae4fbc007d8344015de3.zip Qt-1a8c89e9eaec05e9f38eae4fbc007d8344015de3.tar.gz Qt-1a8c89e9eaec05e9f38eae4fbc007d8344015de3.tar.bz2 |
Merge branch '4.5' of git@scm.dev.nokia.troll.no:qt/qt
Conflicts:
.gitignore
src/gui/dialogs/qfiledialog_p.h
src/gui/painting/qpaintengine_raster.cpp
src/gui/text/qfontdatabase.cpp
tests/auto/network-settings.h
tests/auto/qitemdelegate/tst_qitemdelegate.cpp
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/ChangeLog | 29 | ||||
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp | 3 | ||||
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h | 10 |
3 files changed, 42 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/JavaScriptCore/ChangeLog index 3321570..d55356f 100644 --- a/src/3rdparty/webkit/JavaScriptCore/ChangeLog +++ b/src/3rdparty/webkit/JavaScriptCore/ChangeLog @@ -1,3 +1,32 @@ +2009-02-02 Darin Adler <darin@apple.com> + + Reviewed by Dave Hyatt. + + Bug 23676: Speed up uses of reserveCapacity on new vectors by adding a new reserveInitialCapacity + https://bugs.webkit.org/show_bug.cgi?id=23676 + + * API/JSObjectRef.cpp: + (JSObjectCopyPropertyNames): Use reserveInitialCapacity. + * parser/Lexer.cpp: + (JSC::Lexer::Lexer): Ditto. + (JSC::Lexer::clear): Ditto. + + * wtf/Vector.h: Added reserveInitialCapacity, a more efficient version of + reserveCapacity for use when the vector is brand new (still size 0 with no + capacity other than the inline capacity). + +2009-03-19 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Oliver Hunt. + + Fixed <rdar://problem/6033712> -- a little bit of hardening in the Collector. + + SunSpider reports no change. I also verified in the disassembly that + we end up with a single compare to constant. + + * runtime/Collector.cpp: + (JSC::Heap::heapAllocate): + 2009-01-22 Oliver Hunt <oliver@apple.com> Reviewed by Geoff Garen. diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp index 69cb05e..7d3e27f 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp @@ -365,6 +365,9 @@ collect: // didn't find a block, and GC didn't reclaim anything, need to allocate a new block size_t numBlocks = heap.numBlocks; if (usedBlocks == numBlocks) { + static const size_t maxNumBlocks = ULONG_MAX / sizeof(CollectorBlock*) / GROWTH_FACTOR; + if (numBlocks > maxNumBlocks) + CRASH(); numBlocks = max(MIN_ARRAY_SIZE, numBlocks * GROWTH_FACTOR); heap.numBlocks = numBlocks; heap.blocks = static_cast<CollectorBlock**>(fastRealloc(heap.blocks, numBlocks * sizeof(CollectorBlock*))); diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h index 880b45d..1483129 100644 --- a/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h +++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h @@ -503,6 +503,7 @@ namespace WTF { void grow(size_t size); void resize(size_t size); void reserveCapacity(size_t newCapacity); + void reserveInitialCapacity(size_t initialCapacity); void shrinkCapacity(size_t newCapacity); void shrinkToFit() { shrinkCapacity(size()); } @@ -733,6 +734,15 @@ namespace WTF { } template<typename T, size_t inlineCapacity> + inline void Vector<T, inlineCapacity>::reserveInitialCapacity(size_t initialCapacity) + { + ASSERT(!m_size); + ASSERT(capacity() == inlineCapacity); + if (initialCapacity > inlineCapacity) + m_buffer.allocateBuffer(initialCapacity); + } + + template<typename T, size_t inlineCapacity> void Vector<T, inlineCapacity>::shrinkCapacity(size_t newCapacity) { if (newCapacity >= capacity()) |