diff options
Diffstat (limited to 'src/gsttools/qgstreamermessage.cpp')
-rw-r--r-- | src/gsttools/qgstreamermessage.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gsttools/qgstreamermessage.cpp b/src/gsttools/qgstreamermessage.cpp index 316185672..02b03a373 100644 --- a/src/gsttools/qgstreamermessage.cpp +++ b/src/gsttools/qgstreamermessage.cpp @@ -84,11 +84,15 @@ GstMessage* QGstreamerMessage::rawMessage() const QGstreamerMessage& QGstreamerMessage::operator=(QGstreamerMessage const& rhs) { - if (m_message != 0) - gst_message_unref(m_message); + if (rhs.m_message != m_message) { + if (rhs.m_message != 0) + gst_message_ref(rhs.m_message); + + if (m_message != 0) + gst_message_unref(m_message); - if ((m_message = rhs.m_message) != 0) - gst_message_ref(m_message); + m_message = rhs.m_message; + } return *this; } |