Index: content/browser/indexed_db/leveldb/leveldb_transaction.cc |
diff --git a/content/browser/indexed_db/leveldb/leveldb_transaction.cc b/content/browser/indexed_db/leveldb/leveldb_transaction.cc |
index d8fc06138b8d726b1a7b08ad071078bbc352c129..2e2221bc8817ed1dd90d29b9686d6bb14b979647 100644 |
--- a/content/browser/indexed_db/leveldb/leveldb_transaction.cc |
+++ b/content/browser/indexed_db/leveldb/leveldb_transaction.cc |
@@ -4,14 +4,13 @@ |
#include "content/browser/indexed_db/leveldb/leveldb_transaction.h" |
-#include <string> |
- |
#include "base/logging.h" |
#include "content/browser/indexed_db/leveldb/leveldb_database.h" |
-#include "content/browser/indexed_db/leveldb/leveldb_slice.h" |
#include "content/browser/indexed_db/leveldb/leveldb_write_batch.h" |
#include "third_party/leveldatabase/src/include/leveldb/db.h" |
+using base::StringPiece; |
+ |
namespace content { |
scoped_refptr<LevelDBTransaction> LevelDBTransaction::Create( |
@@ -45,13 +44,8 @@ void LevelDBTransaction::ClearTree() { |
LevelDBTransaction::~LevelDBTransaction() { ClearTree(); } |
-static void InitVector(const LevelDBSlice& slice, std::vector<char>* vector) { |
- vector->clear(); |
- vector->insert(vector->end(), slice.begin(), slice.end()); |
-} |
- |
-void LevelDBTransaction::Set(const LevelDBSlice& key, |
- std::vector<char>* value, |
+void LevelDBTransaction::Set(const StringPiece& key, |
+ std::string* value, |
bool deleted) { |
DCHECK(!finished_); |
bool new_node = false; |
@@ -59,7 +53,7 @@ void LevelDBTransaction::Set(const LevelDBSlice& key, |
if (!node) { |
node = new AVLTreeNode; |
- InitVector(key, &node->key); |
+ node->key = key.as_string(); |
tree_.Insert(node); |
new_node = true; |
} |
@@ -70,17 +64,16 @@ void LevelDBTransaction::Set(const LevelDBSlice& key, |
NotifyIteratorsOfTreeChange(); |
} |
-void LevelDBTransaction::Put(const LevelDBSlice& key, |
- std::vector<char>* value) { |
+void LevelDBTransaction::Put(const StringPiece& key, std::string* value) { |
Set(key, value, false); |
} |
-void LevelDBTransaction::Remove(const LevelDBSlice& key) { |
- std::vector<char> empty; |
+void LevelDBTransaction::Remove(const StringPiece& key) { |
+ std::string empty; |
Set(key, &empty, true); |
} |
-bool LevelDBTransaction::Get(const LevelDBSlice& key, |
+bool LevelDBTransaction::Get(const StringPiece& key, |
std::string* value, |
bool* found) { |
*found = false; |
@@ -91,7 +84,7 @@ bool LevelDBTransaction::Get(const LevelDBSlice& key, |
if (node->deleted) |
return true; |
- value->assign(node->value.begin(), node->value.end()); |
+ *value = node->value; |
*found = true; |
return true; |
} |
@@ -120,9 +113,9 @@ bool LevelDBTransaction::Commit() { |
while (*iterator) { |
AVLTreeNode* node = *iterator; |
if (!node->deleted) |
- write_batch->Put(LevelDBSlice(node->key), LevelDBSlice(node->value)); |
+ write_batch->Put(node->key, node->value); |
else |
- write_batch->Remove(LevelDBSlice(node->key)); |
+ write_batch->Remove(node->key); |
++iterator; |
} |
@@ -157,7 +150,7 @@ void LevelDBTransaction::TreeIterator::SeekToLast() { |
key_ = (*iterator_)->key; |
} |
-void LevelDBTransaction::TreeIterator::Seek(const LevelDBSlice& target) { |
+void LevelDBTransaction::TreeIterator::Seek(const StringPiece& target) { |
iterator_.StartIter(tree_, target, TreeType::EQUAL); |
if (!IsValid()) |
iterator_.StartIter(tree_, target, TreeType::GREATER); |
@@ -170,9 +163,7 @@ void LevelDBTransaction::TreeIterator::Next() { |
DCHECK(IsValid()); |
++iterator_; |
if (IsValid()) { |
- DCHECK(transaction_->comparator_->Compare(LevelDBSlice((*iterator_)->key), |
- LevelDBSlice(key_)) > |
- 0); |
+ DCHECK_GE(transaction_->comparator_->Compare((*iterator_)->key, key_), 0); |
key_ = (*iterator_)->key; |
} |
} |
@@ -181,22 +172,21 @@ void LevelDBTransaction::TreeIterator::Prev() { |
DCHECK(IsValid()); |
--iterator_; |
if (IsValid()) { |
- DCHECK(tree_->abstractor().comparator_->Compare( |
- LevelDBSlice((*iterator_)->key), LevelDBSlice(key_)) < |
- 0); |
+ DCHECK_LT(tree_->abstractor().comparator_->Compare((*iterator_)->key, key_), |
+ 0); |
key_ = (*iterator_)->key; |
} |
} |
-LevelDBSlice LevelDBTransaction::TreeIterator::Key() const { |
+StringPiece LevelDBTransaction::TreeIterator::Key() const { |
DCHECK(IsValid()); |
- return LevelDBSlice(key_); |
+ return key_; |
} |
-LevelDBSlice LevelDBTransaction::TreeIterator::Value() const { |
+StringPiece LevelDBTransaction::TreeIterator::Value() const { |
DCHECK(IsValid()); |
DCHECK(!IsDeleted()); |
- return LevelDBSlice((*iterator_)->value); |
+ return (*iterator_)->value; |
} |
bool LevelDBTransaction::TreeIterator::IsDeleted() const { |
@@ -206,7 +196,7 @@ bool LevelDBTransaction::TreeIterator::IsDeleted() const { |
void LevelDBTransaction::TreeIterator::Reset() { |
DCHECK(IsValid()); |
- iterator_.StartIter(tree_, LevelDBSlice(key_), TreeType::EQUAL); |
+ iterator_.StartIter(tree_, key_, TreeType::EQUAL); |
DCHECK(IsValid()); |
} |
@@ -250,7 +240,7 @@ void LevelDBTransaction::TransactionIterator::SeekToLast() { |
SetCurrentIteratorToLargestKey(); |
} |
-void LevelDBTransaction::TransactionIterator::Seek(const LevelDBSlice& target) { |
+void LevelDBTransaction::TransactionIterator::Seek(const StringPiece& target) { |
tree_iterator_->Seek(target); |
db_iterator_->Seek(target); |
direction_ = FORWARD; |
@@ -322,14 +312,14 @@ void LevelDBTransaction::TransactionIterator::Prev() { |
SetCurrentIteratorToLargestKey(); |
} |
-LevelDBSlice LevelDBTransaction::TransactionIterator::Key() const { |
+StringPiece LevelDBTransaction::TransactionIterator::Key() const { |
DCHECK(IsValid()); |
if (tree_changed_) |
RefreshTreeIterator(); |
return current_->Key(); |
} |
-LevelDBSlice LevelDBTransaction::TransactionIterator::Value() const { |
+StringPiece LevelDBTransaction::TransactionIterator::Value() const { |
DCHECK(IsValid()); |
if (tree_changed_) |
RefreshTreeIterator(); |
@@ -472,7 +462,7 @@ LevelDBWriteOnlyTransaction::~LevelDBWriteOnlyTransaction() { |
write_batch_->Clear(); |
} |
-void LevelDBWriteOnlyTransaction::Remove(const LevelDBSlice& key) { |
+void LevelDBWriteOnlyTransaction::Remove(const StringPiece& key) { |
DCHECK(!finished_); |
write_batch_->Remove(key); |
} |