summaryrefslogtreecommitdiff
path: root/src/misc/blob.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/blob.hpp')
-rw-r--r--src/misc/blob.hpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/misc/blob.hpp b/src/misc/blob.hpp
index ed8c52ac6..6c271cdcf 100644
--- a/src/misc/blob.hpp
+++ b/src/misc/blob.hpp
@@ -74,6 +74,12 @@ public:
/** default constructor - initializes empty blob */
FORCEINLINE ByteBlob() { InitEmpty(); }
+ /** copy constructor */
+ FORCEINLINE ByteBlob(const ByteBlob &src) {
+ InitEmpty();
+ AppendRaw(src);
+ }
+
/** move constructor - take ownership of blob data */
FORCEINLINE ByteBlob(BlobHeader * const & src)
{
@@ -216,6 +222,14 @@ public:
}
}
+ /** append bytes from given source blob to the end of existing data bytes - reallocates if necessary */
+ FORCEINLINE void AppendRaw(const ByteBlob& src)
+ {
+ if (!src.IsEmpty()) {
+ memcpy(Append(src.Length()), src.Begin(), src.Length());
+ }
+ }
+
/** Reallocate if there is no free space for num_bytes bytes.
* @return pointer to the new data to be added */
FORCEINLINE byte *Prepare(uint num_bytes)