summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/MemoryPool.cpp
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2009-10-26 13:51:56 +0100
committercon <qtc-committer@nokia.com>2009-10-26 13:51:56 +0100
commit441ece365aba579eeb66acb509df466f5029c580 (patch)
treeb4f8ac51e0203bad62c301f0c891b9246a15ad6a /src/shared/cplusplus/MemoryPool.cpp
parent4504aec7deb2f0abcd6a71e094bbcfb4edd5154d (diff)
parent3c0ca8c18881bc26fd8946bc2651fa89b10a1329 (diff)
downloadqt-creator-441ece365aba579eeb66acb509df466f5029c580.tar.gz
Merge commit 'origin/1.3'
Conflicts: src/plugins/cpptools/cppcodecompletion.h src/plugins/debugger/gdb/gdbengine.cpp src/plugins/qmleditor/QmlEditor.pluginspec
Diffstat (limited to 'src/shared/cplusplus/MemoryPool.cpp')
-rw-r--r--src/shared/cplusplus/MemoryPool.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/shared/cplusplus/MemoryPool.cpp b/src/shared/cplusplus/MemoryPool.cpp
index 2002a65435..1453c62cd6 100644
--- a/src/shared/cplusplus/MemoryPool.cpp
+++ b/src/shared/cplusplus/MemoryPool.cpp
@@ -110,6 +110,19 @@ void *MemoryPool::allocate_helper(size_t size)
return addr;
}
+MemoryPool::State MemoryPool::state() const
+{ return State(ptr, _blockCount); }
+
+void MemoryPool::rewind(const State &state)
+{
+ if (_blockCount == state.blockCount && state.ptr < ptr) {
+ if (_initializeAllocatedMemory)
+ memset(state.ptr, '\0', ptr - state.ptr);
+
+ ptr = state.ptr;
+ }
+}
+
Managed::Managed()
{ }