File: g_object_unref

package info (click to toggle)
gmotionlive 1.0-3.1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster, trixie
  • size: 156 kB
  • sloc: ansic: 1,095; sh: 80; makefile: 18
file content (40 lines) | stat: -rw-r--r-- 1,264 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /bin/sh /usr/share/dpatch/dpatch-run
## 002-g_object_unref.dpatch by Maximiliano Curia <maxy@debian.org>
##
## DP: Fixes a major memory leakage

@DPATCH@
diff -urNad gmotionlive-1.0~/gmotionlive.c gmotionlive-1.0/gmotionlive.c
--- gmotionlive-1.0~/gmotionlive.c	2005-04-12 05:52:11.000000000 -0300
+++ gmotionlive-1.0/gmotionlive.c	2008-07-15 15:55:31.000000000 -0300
@@ -86,7 +86,6 @@
 	if (!newpixbuf)
 		return;
 	gtk_image_set_from_pixbuf(GTK_IMAGE(gtkimage), newpixbuf);
-	g_object_unref(newpixbuf);
 	gtk_widget_show(gtkimage);
 	gtk_window_resize(GTK_WINDOW(window), 100, 100);
 	gtk_widget_show_all(window);
@@ -131,6 +130,8 @@
 						i++;
 						netcam_linesize = 0;
 						netcam_state = NETCAM_STATE_DATA;
+						if ( pixbufloader )
+							g_object_unref(pixbufloader);
 						pixbufloader = gdk_pixbuf_loader_new();
 						if (!pixbufloader) {
 							g_print("ohoh6\n");
@@ -194,9 +195,11 @@
 					i += j;
 			}
 			if (netcam_state == NETCAM_STATE_START) {
-					netcam_linesize = 1;
-					netcam_line[0] = 0;
+				netcam_linesize = 1;
+				netcam_line[0] = 0;
+				if ( G_IS_OBJECT(pixbufloader) ) {
 					gdk_pixbuf_loader_close(pixbufloader, NULL);
+				}
 			}
 			memcpy(boundarystart + boundoff, start + checklen, netcam_boundarylen);
 		}