]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kv: fix string ctor usage 6511/head
authorSage Weil <sage@redhat.com>
Mon, 9 Nov 2015 18:40:41 +0000 (13:40 -0500)
committerSage Weil <sage@redhat.com>
Mon, 9 Nov 2015 18:40:41 +0000 (13:40 -0500)
When constructing a string from a char* there is only a single
length argument, no offset.  The 3 argument variant we were using
was converting to a std::string first (an prematurely terminating
on \0).

Signed-off-by: Sage Weil <sage@redhat.com>
src/kv/KineticStore.cc
src/kv/LevelDBStore.cc
src/kv/RocksDBStore.cc

index b79ab37314bed0228fb728008d8eae434f687bec..d11975b4aeabb6e4998920f0ca58756f2af39912 100644 (file)
@@ -218,9 +218,9 @@ int KineticStore::split_key(string in_prefix, string *prefix, string *key)
 
   // Fetch prefix and/or key directly from Slice
   if (prefix)
-    *prefix = string(in_data, 0, prefix_len);
+    *prefix = string(in_data, prefix_len);
   if (key)
-    *key = string(separator+1, 0, in_prefix.size()-prefix_len-1);
+    *key = string(separator+1, in_prefix.size()-prefix_len-1);
   return 0;
 }
 
index 90fd8ed36a4ca7c71fe6fa02475671e4ef889e82..2db6dc94ed7407eafe72eaaf576dfe8eee426319 100644 (file)
@@ -275,12 +275,11 @@ int LevelDBStore::split_key(leveldb::Slice in, string *prefix, string *key)
   if (prefix_len >= in.size())
     return -EINVAL;
 
-  // Fetch prefix and/or key directly from Slice
   if (prefix)
-    *prefix = string(in.data(), 0, prefix_len);
+    *prefix = string(in.data(), prefix_len);
   if (key)
-    *key = string(separator+1, 0, in.size()-prefix_len-1);
-  return 0;
+    *key = string(separator+1, in.size() - prefix_len - 1);
+   return 0;
 }
 
 void LevelDBStore::compact()
index e7d41f3a9aa8124f0ca8c2367b9e2060479efb5a..6dfde87a8900eb3c8aafae5a2f040307c8ccbb7c 100644 (file)
@@ -342,9 +342,9 @@ int RocksDBStore::split_key(rocksdb::Slice in, string *prefix, string *key)
 
   // Fetch prefix and/or key directly from Slice
   if (prefix)
-    *prefix = string(in.data(), 0, prefix_len);
+    *prefix = string(in.data(), prefix_len);
   if (key)
-    *key = string(separator+1, 0, in.size()-prefix_len-1);
+    *key = string(separator+1, in.size()-prefix_len-1);
   return 0;
 }