From f1d9955540076e044905afb3fd6dbc03034aacd3 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Wed, 8 Feb 2017 11:49:25 -0600 Subject: COMMON: Fix calling Span::getStringAt with non-zero index --- common/span.h | 4 ++-- test/common/span.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/span.h b/common/span.h index 0bb5a25972..2acc0b5fe7 100644 --- a/common/span.h +++ b/common/span.h @@ -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); } /** diff --git a/test/common/span.h b/test/common/span.h index d9b1d3120e..55ef2c6bd2 100644 --- a/test/common/span.h +++ b/test/common/span.h @@ -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"); } -- cgit v1.2.3