summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/mir_signal.cpp10
-rw-r--r--utils/mir_signal.h4
2 files changed, 13 insertions, 1 deletions
diff --git a/utils/mir_signal.cpp b/utils/mir_signal.cpp
index afca4f4188..d4e03e6803 100644
--- a/utils/mir_signal.cpp
+++ b/utils/mir_signal.cpp
@@ -37,4 +37,12 @@ SignalBuffer::~SignalBuffer()
CMStringA SignalBuffer::toBase64() const
{
return ptrA(mir_base64_encode(m_buf->data, m_buf->len)).get();
-} \ No newline at end of file
+}
+
+void SignalBuffer::operator=(signal_buffer *buf)
+{
+ if (m_buf)
+ signal_buffer_free(m_buf);
+
+ m_buf = buf;
+}
diff --git a/utils/mir_signal.h b/utils/mir_signal.h
index ef443374ff..313714edac 100644
--- a/utils/mir_signal.h
+++ b/utils/mir_signal.h
@@ -40,6 +40,7 @@ class SignalBuffer
signal_buffer *m_buf;
public:
+ SignalBuffer() : m_buf(nullptr) {}
SignalBuffer(const class MBinBuffer &buf);
SignalBuffer(const ec_public_key *key);
SignalBuffer(const ec_private_key *key);
@@ -47,6 +48,9 @@ public:
SignalBuffer(const session_signed_pre_key *pre_key);
~SignalBuffer();
+ void operator=(signal_buffer *buf);
+
+ __forceinline operator bool() const { return m_buf != nullptr; }
__forceinline uint8_t* data() const { return m_buf->data; }
__forceinline unsigned len() const { return unsigned(m_buf->len); }