aboutsummaryrefslogtreecommitdiff
path: root/src/leveldb/util/arena.cc
diff options
context:
space:
mode:
authorPieter Wuille <[email protected]>2016-12-01 16:14:45 -0800
committerPieter Wuille <[email protected]>2016-12-01 16:14:45 -0800
commit605d701471c3ee84682b0c149e41142d7cea95e7 (patch)
tree7a6af0e78ee2202f510686e9a3561c28829b8a4b /src/leveldb/util/arena.cc
parentMerge #9183: Final Preparation for main.cpp Split (diff)
parentSquashed 'src/leveldb/' changes from 20ca81f..a31c8aa (diff)
downloaddiscoin-605d701471c3ee84682b0c149e41142d7cea95e7.tar.xz
discoin-605d701471c3ee84682b0c149e41142d7cea95e7.zip
Merge in LevelDB 1.19 changes
Diffstat (limited to 'src/leveldb/util/arena.cc')
-rw-r--r--src/leveldb/util/arena.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/leveldb/util/arena.cc b/src/leveldb/util/arena.cc
index 9367f7149..74078213e 100644
--- a/src/leveldb/util/arena.cc
+++ b/src/leveldb/util/arena.cc
@@ -9,8 +9,7 @@ namespace leveldb {
static const int kBlockSize = 4096;
-Arena::Arena() {
- blocks_memory_ = 0;
+Arena::Arena() : memory_usage_(0) {
alloc_ptr_ = NULL; // First allocation will allocate a block
alloc_bytes_remaining_ = 0;
}
@@ -60,8 +59,9 @@ char* Arena::AllocateAligned(size_t bytes) {
char* Arena::AllocateNewBlock(size_t block_bytes) {
char* result = new char[block_bytes];
- blocks_memory_ += block_bytes;
blocks_.push_back(result);
+ memory_usage_.NoBarrier_Store(
+ reinterpret_cast<void*>(MemoryUsage() + block_bytes + sizeof(char*)));
return result;
}