[569/906] differencematte: prevent double unref of shader and midtexture
authorMatthew Waters <ystreet00@gmail.com>
Mon, 20 Aug 2012 06:55:41 +0000 (16:55 +1000)
committerMatthew Waters <ystreet00@gmail.com>
Sat, 15 Mar 2014 17:36:48 +0000 (18:36 +0100)
gst/gl/gstgldifferencematte.c

index d7de600..2e23144 100644 (file)
@@ -149,9 +149,14 @@ gst_gl_differencematte_reset_gl_resources (GstGLFilter * filter)
   glDeleteTextures (1, &differencematte->savedbgtexture);
   glDeleteTextures (1, &differencematte->newbgtexture);
   for (i = 0; i < 4; i++) {
-    g_object_unref (differencematte->shader[i]);
-    differencematte->shader[i] = NULL;
-    glDeleteTextures (1, &differencematte->midtexture[i]);
+    if (differencematte->shader[i]) {
+      g_object_unref (differencematte->shader[i]);
+      differencematte->shader[i] = NULL;
+    }
+    if (differencematte->midtexture[i]) {
+      glDeleteTextures (1, &differencematte->midtexture[i]);
+      differencematte->midtexture[i] = 0;
+    }
   }
   differencematte->location = NULL;
   differencematte->pixbuf = NULL;