diff options
author | Sfan5 <sfan5@live.de> | 2013-09-09 22:46:18 +0200 |
---|---|---|
committer | Sfan5 <sfan5@live.de> | 2013-09-09 22:50:51 +0200 |
commit | 3725179736e2b5372664163470e7ef3dc76529a4 (patch) | |
tree | 7a56c929ae75530679b3d2f7c9c02fb361760219 /src/leveldb/util/arena.h | |
parent | 1f3402e7a1e160c4be25c596f33d916b988075fb (diff) | |
download | minetest-3725179736e2b5372664163470e7ef3dc76529a4.tar.gz minetest-3725179736e2b5372664163470e7ef3dc76529a4.tar.bz2 minetest-3725179736e2b5372664163470e7ef3dc76529a4.zip |
Use system-wide LevelDB instead of bundled one
Diffstat (limited to 'src/leveldb/util/arena.h')
-rw-r--r-- | src/leveldb/util/arena.h | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/src/leveldb/util/arena.h b/src/leveldb/util/arena.h deleted file mode 100644 index 8f7dde226..000000000 --- a/src/leveldb/util/arena.h +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) 2011 The LevelDB Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. See the AUTHORS file for names of contributors. - -#ifndef STORAGE_LEVELDB_UTIL_ARENA_H_ -#define STORAGE_LEVELDB_UTIL_ARENA_H_ - -#include <cstddef> -#include <vector> -#include <assert.h> -#include <stdint.h> - -namespace leveldb { - -class Arena { - public: - Arena(); - ~Arena(); - - // Return a pointer to a newly allocated memory block of "bytes" bytes. - char* Allocate(size_t bytes); - - // Allocate memory with the normal alignment guarantees provided by malloc - char* AllocateAligned(size_t bytes); - - // Returns an estimate of the total memory usage of data allocated - // by the arena (including space allocated but not yet used for user - // allocations). - size_t MemoryUsage() const { - return blocks_memory_ + blocks_.capacity() * sizeof(char*); - } - - private: - char* AllocateFallback(size_t bytes); - char* AllocateNewBlock(size_t block_bytes); - - // Allocation state - char* alloc_ptr_; - size_t alloc_bytes_remaining_; - - // Array of new[] allocated memory blocks - std::vector<char*> blocks_; - - // Bytes of memory in blocks allocated so far - size_t blocks_memory_; - - // No copying allowed - Arena(const Arena&); - void operator=(const Arena&); -}; - -inline char* Arena::Allocate(size_t bytes) { - // The semantics of what to return are a bit messy if we allow - // 0-byte allocations, so we disallow them here (we don't need - // them for our internal use). - assert(bytes > 0); - if (bytes <= alloc_bytes_remaining_) { - char* result = alloc_ptr_; - alloc_ptr_ += bytes; - alloc_bytes_remaining_ -= bytes; - return result; - } - return AllocateFallback(bytes); -} - -} // namespace leveldb - -#endif // STORAGE_LEVELDB_UTIL_ARENA_H_ |