aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/salticidae/stream.h5
-rw-r--r--test/test_stream.cpp2
2 files changed, 7 insertions, 0 deletions
diff --git a/include/salticidae/stream.h b/include/salticidae/stream.h
index 5b7e936..2d0c963 100644
--- a/include/salticidae/stream.h
+++ b/include/salticidae/stream.h
@@ -286,6 +286,11 @@ class _Bits {
load(&*arr.begin(), arr.size());
}
+ _Bits(const _Bits &other): nbits(other.nbits), ndata(other.ndata) {
+ data = new _impl_type[ndata];
+ memmove(data.get(), other.data.get(), ndata * sizeof(_impl_type));
+ }
+
_Bits(const uint8_t *arr, uint32_t len) { load(arr, len); }
_Bits(uint32_t nbits): nbits(nbits) {
ndata = (nbits + bit_per_datum - 1) / bit_per_datum;
diff --git a/test/test_stream.cpp b/test/test_stream.cpp
index 0e05146..c9fccac 100644
--- a/test/test_stream.cpp
+++ b/test/test_stream.cpp
@@ -73,6 +73,8 @@ int main() {
s << a;
Bits b;
s >> b;
+ Bits c(b);
+ Bits d(std::move(c));
printf("%s\n", get_hex(b).c_str());
print(b, b.size());
return 0;