Skip to content

Commit 983fafa

Browse files
committed
Fix memory leak
1 parent 04afa32 commit 983fafa

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

db/memtablelist.cc

+2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ MemTableListVersion::MemTableListVersion(MemTableListVersion* old) {
3131
void MemTableListVersion::Ref() { ++refs_; }
3232

3333
void MemTableListVersion::Unref(std::vector<MemTable*>* to_delete) {
34+
assert(refs_ >= 1);
3435
--refs_;
3536
if (refs_ == 0) {
3637
// if to_delete is equal to nullptr it means we're confident
@@ -255,6 +256,7 @@ void MemTableList::InstallNewVersion() {
255256
// somebody else holds the current version, we need to create new one
256257
MemTableListVersion* version = current_;
257258
current_ = new MemTableListVersion(current_);
259+
current_->Ref();
258260
version->Unref();
259261
}
260262
}

db/memtablelist.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class MemTableListVersion {
4949
friend class MemTableList;
5050
std::list<MemTable*> memlist_;
5151
int size_ = 0;
52-
int refs_ = 1;
52+
int refs_ = 0;
5353
};
5454

5555
// This class stores references to all the immutable memtables.

0 commit comments

Comments
 (0)