summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-07-19 14:00:27 +0200
committerHenning Baldersheim <balder@oath.com>2018-07-19 14:00:27 +0200
commit81914f5a56ceb33001179c172f22278398c86a51 (patch)
tree1d8e7a1e137eee94e8275e72085ead1a144cd644 /vespalib
parent9df684ab0857b573443c00ac7cf1007822d17dfc (diff)
Add control of cache update policy when an item changes value.
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/data/databuffer.cpp16
-rw-r--r--vespalib/src/vespa/vespalib/data/databuffer.h14
2 files changed, 16 insertions, 14 deletions
diff --git a/vespalib/src/vespa/vespalib/data/databuffer.cpp b/vespalib/src/vespa/vespalib/data/databuffer.cpp
index 5558a371836..9b04724b601 100644
--- a/vespalib/src/vespa/vespalib/data/databuffer.cpp
+++ b/vespalib/src/vespa/vespalib/data/databuffer.cpp
@@ -11,11 +11,11 @@ size_t padbefore(size_t alignment, const char *buf) {
DataBuffer::DataBuffer(size_t len, size_t alignment, const Alloc & initial)
: _alignment(alignment),
- _externalBuf(NULL),
- _bufstart(NULL),
- _bufend(NULL),
- _datapt(NULL),
- _freept(NULL),
+ _externalBuf(nullptr),
+ _bufstart(nullptr),
+ _bufend(nullptr),
+ _datapt(nullptr),
+ _freept(nullptr),
_buffer(initial.create(0))
{
assert(_alignment > 0);
@@ -29,7 +29,7 @@ DataBuffer::DataBuffer(size_t len, size_t alignment, const Alloc & initial)
_datapt = _bufstart + padbefore(alignment, _bufstart);
_freept = _datapt;
_bufend = _bufstart + bufsize;
- assert(_bufstart != NULL);
+ assert(_bufstart != nullptr);
}
}
@@ -68,8 +68,8 @@ DataBuffer::shrink(size_t newsize)
if (getBufSize() <= newsize || getDataLen() > newsize) {
return false;
}
- char *newbuf = NULL;
- char *newdata = NULL;
+ char *newbuf = nullptr;
+ char *newdata = nullptr;
newsize += (_alignment - 1);
Alloc newBuf(_buffer.create(newsize));
if (newsize != 0) {
diff --git a/vespalib/src/vespa/vespalib/data/databuffer.h b/vespalib/src/vespa/vespalib/data/databuffer.h
index 28524f373b2..a520ecd58bd 100644
--- a/vespalib/src/vespa/vespalib/data/databuffer.h
+++ b/vespalib/src/vespa/vespalib/data/databuffer.h
@@ -44,6 +44,8 @@ public:
typedef std::unique_ptr<DataBuffer> UP;
DataBuffer(const DataBuffer &) = delete;
DataBuffer &operator=(const DataBuffer &) = delete;
+ DataBuffer(DataBuffer &&) = default;
+ DataBuffer &operator=(DataBuffer &&) = default;
/**
* Construct a databuffer.
@@ -61,19 +63,19 @@ public:
* @param buf pointer to preallocated memory
* @param len length of preallocated memory
**/
- DataBuffer(char *buf, size_t len) :
+ DataBuffer(void *buf, size_t len) :
_alignment(1),
- _externalBuf(buf),
- _bufstart(buf),
- _bufend(buf + len),
+ _externalBuf(static_cast<char *>(buf)),
+ _bufstart(_externalBuf),
+ _bufend(_externalBuf + len),
_datapt(_bufstart),
_freept(_bufstart),
_buffer(Alloc::alloc(0))
{ }
- DataBuffer(const char *buf, size_t len) :
+ DataBuffer(const void *buf, size_t len) :
_alignment(1),
- _externalBuf(const_cast<char *>(buf)),
+ _externalBuf(static_cast<char *>(const_cast<void *>(buf))),
_bufstart(_externalBuf),
_bufend(_bufstart + len),
_datapt(_bufstart),