Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(741)

Unified Diff: content/browser/indexed_db/leveldb/leveldb_transaction.cc

Issue 18075008: IndexedDB: Switch key/value handling from vector<char> to std::string (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove C++11ism Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
« no previous file with comments | « content/browser/indexed_db/leveldb/leveldb_transaction.h ('k') | content/browser/indexed_db/leveldb/leveldb_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698