diff --git a/util/coding.cc b/util/coding.cc index 21e3186..da633c2 100644 --- a/util/coding.cc +++ b/util/coding.cc @@ -135,7 +135,7 @@ bool GetVarint32(Slice* input, uint32_t* value) { if (q == NULL) { return false; } else { - *input = Slice(q, limit - q); + input->remove_prefix(q - p); return true; } } @@ -164,21 +164,11 @@ bool GetVarint64(Slice* input, uint64_t* value) { if (q == NULL) { return false; } else { - *input = Slice(q, limit - q); + input->remove_prefix(q - p); return true; } } -const char* GetLengthPrefixedSlice(const char* p, const char* limit, - Slice* result) { - uint32_t len; - p = GetVarint32Ptr(p, limit, &len); - if (p == NULL) return NULL; - if (p + len > limit) return NULL; - *result = Slice(p, len); - return p + len; -} - bool GetLengthPrefixedSlice(Slice* input, Slice* result) { uint32_t len; if (GetVarint32(input, &len) && diff --git a/util/coding_test.cc b/util/coding_test.cc index 521541e..ef182c1 100644 --- a/util/coding_test.cc +++ b/util/coding_test.cc @@ -92,7 +92,7 @@ TEST(Coding, Varint32) { ASSERT_EQ(expected, actual); ASSERT_EQ(VarintLength(actual), p - start); } - ASSERT_EQ(p, s.data() + s.size()); + ASSERT_EQ(p, limit); } TEST(Coding, Varint64) {