summaryrefslogtreecommitdiffstats
path: root/src/gsttools/qgstreamermessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gsttools/qgstreamermessage.cpp')
-rw-r--r--src/gsttools/qgstreamermessage.cpp12
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;
}