|
|
|
@ -235,15 +235,15 @@ std::ostream &operator<<(std::ostream &os, const ArenaImpl &s) {
|
|
|
|
|
Status Arena::Init() {
|
|
|
|
|
try {
|
|
|
|
|
int64_t sz = size_in_MB_ * 1048576L;
|
|
|
|
|
RETURN_IF_NOT_OK(mem_.allocate(sz));
|
|
|
|
|
impl_ = std::make_unique<ArenaImpl>(mem_.GetMutablePointer(), sz);
|
|
|
|
|
RETURN_IF_NOT_OK(DeMalloc(sz, &ptr_, false));
|
|
|
|
|
impl_ = std::make_unique<ArenaImpl>(ptr_, sz);
|
|
|
|
|
} catch (std::bad_alloc &e) {
|
|
|
|
|
return Status(StatusCode::kOutOfMemory);
|
|
|
|
|
}
|
|
|
|
|
return Status::OK();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Arena::Arena(size_t val_in_MB) : size_in_MB_(val_in_MB) {}
|
|
|
|
|
Arena::Arena(size_t val_in_MB) : ptr_(nullptr), size_in_MB_(val_in_MB) {}
|
|
|
|
|
|
|
|
|
|
Status Arena::CreateArena(std::shared_ptr<Arena> *p_ba, size_t val_in_MB) {
|
|
|
|
|
RETURN_UNEXPECTED_IF_NULL(p_ba);
|
|
|
|
|