aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vespalib/src/vespa/vespalib/objects/nbostream.cpp6
-rw-r--r--vespalib/src/vespa/vespalib/util/array.h2
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;