diff options
-rw-r--r-- | vespalib/src/vespa/vespalib/objects/nbostream.cpp | 6 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/util/array.h | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/vespalib/src/vespa/vespalib/objects/nbostream.cpp b/vespalib/src/vespa/vespalib/objects/nbostream.cpp index 1ef63bc5322..ca43027b2b5 100644 --- a/vespalib/src/vespa/vespalib/objects/nbostream.cpp +++ b/vespalib/src/vespa/vespalib/objects/nbostream.cpp @@ -128,17 +128,17 @@ void nbostream::compact() void nbostream::extend(size_t extraSize) { - if (&_wbuf[0] != _rbuf.c_str()) { + if (_wbuf.data() != _rbuf.c_str()) { _wbuf.resize(roundUp2inN(_rbuf.size() + extraSize)); compact(); - _rbuf = ConstBufferRef(&_wbuf[0], _wbuf.capacity()); + _rbuf = ConstBufferRef(_wbuf.data(), _wbuf.capacity()); } if (_rp != 0) { compact(); } if (space() < extraSize) { _wbuf.resize(roundUp2inN(_wbuf.size() + extraSize)); - _rbuf = ConstBufferRef(&_wbuf[0], _wbuf.capacity()); + _rbuf = ConstBufferRef(_wbuf.data(), _wbuf.capacity()); } } diff --git a/vespalib/src/vespa/vespalib/util/array.h b/vespalib/src/vespa/vespalib/util/array.h index cb5d5c7cc63..ec91c51b483 100644 --- a/vespalib/src/vespa/vespalib/util/array.h +++ b/vespalib/src/vespa/vespalib/util/array.h @@ -137,6 +137,8 @@ public: } void reset(); bool empty() const { return _sz == 0; } + T * data() noexcept { return static_cast<T *>(_array.get()); } + const T * data() const noexcept { return static_cast<const T *>(_array.get()); } T & operator [] (size_t i) { return *array(i); } const T & operator [] (size_t i) const { return *array(i); } bool operator == (const Array & rhs) const; |