diff options
Diffstat (limited to 'table')
-rw-r--r-- | table/block_builder.cc | 2 | ||||
-rw-r--r-- | table/table_test.cc | 14 |
2 files changed, 10 insertions, 6 deletions
diff --git a/table/block_builder.cc b/table/block_builder.cc index dc958c8..d2ffa21 100644 --- a/table/block_builder.cc +++ b/table/block_builder.cc @@ -80,7 +80,7 @@ void BlockBuilder::Add(const Slice& key, const Slice& value) { if (counter_ < options_->block_restart_interval) { // See how much sharing to do with previous string const size_t min_length = std::min(last_key_piece.size(), key.size()); - while ((shared < min_length) && (last_key_[shared] == key[shared])) { + while ((shared < min_length) && (last_key_piece[shared] == key[shared])) { shared++; } } else { diff --git a/table/table_test.cc b/table/table_test.cc index 4b3e85e..cf2bae0 100644 --- a/table/table_test.cc +++ b/table/table_test.cc @@ -319,13 +319,15 @@ class MemTableConstructor: public Constructor { : Constructor(cmp), internal_comparator_(cmp) { memtable_ = new MemTable(internal_comparator_); + memtable_->Ref(); } ~MemTableConstructor() { - delete memtable_; + memtable_->Unref(); } virtual Status FinishImpl(const Options& options, const KVMap& data) { - delete memtable_; + memtable_->Unref(); memtable_ = new MemTable(internal_comparator_); + memtable_->Ref(); int seq = 1; for (KVMap::const_iterator it = data.begin(); it != data.end(); @@ -736,16 +738,17 @@ class MemTableTest { }; TEST(MemTableTest, Simple) { InternalKeyComparator cmp(BytewiseComparator()); - MemTable memtable(cmp); + MemTable* memtable = new MemTable(cmp); + memtable->Ref(); WriteBatch batch; WriteBatchInternal::SetSequence(&batch, 100); batch.Put(std::string("k1"), std::string("v1")); batch.Put(std::string("k2"), std::string("v2")); batch.Put(std::string("k3"), std::string("v3")); batch.Put(std::string("largekey"), std::string("vlarge")); - ASSERT_TRUE(WriteBatchInternal::InsertInto(&batch, &memtable).ok()); + ASSERT_TRUE(WriteBatchInternal::InsertInto(&batch, memtable).ok()); - Iterator* iter = memtable.NewIterator(); + Iterator* iter = memtable->NewIterator(); iter->SeekToFirst(); while (iter->Valid()) { fprintf(stderr, "key: '%s' -> '%s'\n", @@ -755,6 +758,7 @@ TEST(MemTableTest, Simple) { } delete iter; + memtable->Unref(); } static bool Between(uint64_t val, uint64_t low, uint64_t high) { |