summaryrefslogtreecommitdiff
path: root/table
diff options
context:
space:
mode:
authordgrogan@chromium.org <dgrogan@chromium.org@62dab493-f737-651d-591e-8d6aee1b9529>2011-05-21 02:17:43 +0000
committerdgrogan@chromium.org <dgrogan@chromium.org@62dab493-f737-651d-591e-8d6aee1b9529>2011-05-21 02:17:43 +0000
commitda7990950787257cb312ca562ce5977749afc3e9 (patch)
tree91fe98f6e14e74c794392b22105a47a58499edff /table
parent3c111335a760d8d82414b91a54f740df09dd4f8f (diff)
downloadleveldb-da7990950787257cb312ca562ce5977749afc3e9.tar.gz
sync with upstream @ 21409451
Check the NEWS file for details of what changed. git-svn-id: https://leveldb.googlecode.com/svn/trunk@28 62dab493-f737-651d-591e-8d6aee1b9529
Diffstat (limited to 'table')
-rw-r--r--table/block_builder.cc2
-rw-r--r--table/table_test.cc14
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) {