From: Sage Weil Date: Fri, 23 Dec 2016 21:52:59 +0000 (-0500) Subject: os/bluestore: avoid substr X-Git-Tag: v12.0.0~181^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ff81d54ca21943d66a75a57fb21760dae1c524e9;p=ceph-ci.git os/bluestore: avoid substr This creates an intermediate string, which is a waste. Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index a5f406f06dc..adc93002d06 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -173,7 +173,7 @@ static string pretty_binary_string(const string& in) (in[i+2] < 32 || (unsigned char)in[i+2] > 126) || (in[i+3] < 32 || (unsigned char)in[i+3] > 126)))) { if (mode == STRING) { - out.append(in.substr(from, i - from)); + out.append(in.c_str() + from, i - from); out.push_back('\''); } if (mode != HEX) { @@ -201,7 +201,7 @@ static string pretty_binary_string(const string& in) } } if (mode == STRING) { - out.append(in.substr(from, i - from)); + out.append(in.c_str() + from, i - from); out.push_back('\''); } return out; @@ -451,7 +451,7 @@ static void get_omap_key(uint64_t id, const string& key, string *out) static void rewrite_omap_key(uint64_t id, string old, string *out) { _key_encode_u64(id, out); - out->append(old.substr(out->length())); + out->append(old.c_str() + out->length(), old.size() - out->length()); } static void decode_omap_key(const string& key, string *user_key)