summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore
diff options
context:
space:
mode:
authoraxis <qt-info@nokia.com>2009-06-29 12:25:09 (GMT)
committeraxis <qt-info@nokia.com>2009-06-29 12:25:09 (GMT)
commit1a8c89e9eaec05e9f38eae4fbc007d8344015de3 (patch)
treed87e517cfab9443926841b3ef92ca715a717f54a /src/3rdparty/webkit/JavaScriptCore
parent78166d5235a5045fdc887febe01d789cac333bb3 (diff)
parentb6171cfbe3b1453a2c46f78db0df4819e4e5e54f (diff)
downloadQt-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/ChangeLog29
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Collector.cpp3
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h10
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())