COMMON: Fix calling Span::getStringAt with non-zero index

This commit is contained in:
Colin Snover 2017-02-08 11:49:25 -06:00
parent 3aa660f4c7
commit f1d9955540
2 changed files with 4 additions and 2 deletions

View file

@ -393,14 +393,14 @@ public:
inline String getStringAt(const index_type index, size_type numEntries = kSpanMaxSize) const {
STATIC_ASSERT(sizeof(value_type) == sizeof(char), strings_can_only_be_read_from_byte_or_char_spans);
const char *string = (const char *)impl().data();
const char *string = (const char *)impl().data() + index;
if (numEntries == kSpanMaxSize) {
numEntries = strnlen(string, impl().size() - index);
}
impl().validate(index, numEntries);
return String(string + index, numEntries);
return String(string, numEntries);
}
/**

View file

@ -496,6 +496,8 @@ public:
TS_ASSERT(span.getStringAt(0) == data);
TS_ASSERT(span.getStringAt(0, 2) == "he");
TS_ASSERT(span.getStringAt(2) == "llo");
TS_ASSERT(span.getStringAt(2, 3) == "llo");
span[3] = '\0';
TS_ASSERT(span.getStringAt(0) == "hel");
}