diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2009-07-29 07:26:08 (GMT) |
---|---|---|
committer | Alan Alpert <alan.alpert@nokia.com> | 2009-07-29 07:26:08 (GMT) |
commit | a7cc30b30df53d6a70208c25f6c12a9f229b3ea6 (patch) | |
tree | 7764192081a6f36113bc7c2f32419fa36ed7013b /src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h | |
parent | fb7d86cf23227302d48db279ec589221d11a1f6a (diff) | |
parent | 3b00ee50810206a20a5bb1b06e1dfaf593aae7ed (diff) | |
download | Qt-a7cc30b30df53d6a70208c25f6c12a9f229b3ea6.zip Qt-a7cc30b30df53d6a70208c25f6c12a9f229b3ea6.tar.gz Qt-a7cc30b30df53d6a70208c25f6c12a9f229b3ea6.tar.bz2 |
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h b/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h index 7a5a8d3..073906a 100644 --- a/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h +++ b/src/3rdparty/webkit/JavaScriptCore/assembler/AssemblerBuffer.h @@ -95,12 +95,14 @@ namespace JSC { void putIntUnchecked(int value) { + ASSERT(!(m_size > m_capacity - 4)); *reinterpret_cast<int*>(&m_buffer[m_size]) = value; m_size += 4; } void putInt64Unchecked(int64_t value) { + ASSERT(!(m_size > m_capacity - 8)); *reinterpret_cast<int64_t*>(&m_buffer[m_size]) = value; m_size += 8; } @@ -137,10 +139,19 @@ namespace JSC { return memcpy(result, m_buffer, m_size); } - private: - void grow() + protected: + void append(const char* data, int size) + { + if (m_size > m_capacity - size) + grow(size); + + memcpy(m_buffer + m_size, data, size); + m_size += size; + } + + void grow(int extraCapacity = 0) { - m_capacity += m_capacity / 2; + m_capacity += m_capacity / 2 + extraCapacity; if (m_buffer == m_inlineBuffer) { char* newBuffer = static_cast<char*>(fastMalloc(m_capacity)); |