diff --git a/src/ZeekString.cc b/src/ZeekString.cc index 6d2e39ac31..e5bfaacd5c 100644 --- a/src/ZeekString.cc +++ b/src/ZeekString.cc @@ -37,6 +37,12 @@ String::String(bool arg_final_NUL, byte_vec str, int arg_n) { use_free_to_delete = false; } +String::String(String&& other) noexcept + : b(other.b), n(other.n), final_NUL(other.final_NUL), use_free_to_delete(other.use_free_to_delete) { + other.b = nullptr; + other.Reset(); +} + String::String(const u_char* str, int arg_n, bool add_NUL) : String() { Set(str, arg_n, add_NUL); } String::String(std::string_view str) : String() { Set(str); } diff --git a/src/ZeekString.h b/src/ZeekString.h index 44fee2d8cd..433e318868 100644 --- a/src/ZeekString.h +++ b/src/ZeekString.h @@ -47,6 +47,9 @@ public: // Constructor that takes ownership of the vector passed in. String(bool arg_final_NUL, byte_vec str, int arg_n); + // Move constructor + String(String&& s) noexcept; + String(); ~String() { Reset(); }