libgsf r992 - in trunk: . gsf
- From: doml svn gnome org
- To: svn-commits-list gnome org
- Subject: libgsf r992 - in trunk: . gsf
- Date: Fri, 18 Jul 2008 21:26:26 +0000 (UTC)
Author: doml
Date: Fri Jul 18 21:26:26 2008
New Revision: 992
URL: http://svn.gnome.org/viewvc/libgsf?rev=992&view=rev
Log:
2008-07-18 Dominic Lachowicz <domlachowicz gmail com>
* gsf/gsf-input-gio.c (gsf_input_gio_new): Don't leak @input if
we're going to make a local copy of the requested file
Modified:
trunk/ChangeLog
trunk/gsf/gsf-input-gio.c
Modified: trunk/gsf/gsf-input-gio.c
==============================================================================
--- trunk/gsf/gsf-input-gio.c (original)
+++ trunk/gsf/gsf-input-gio.c Fri Jul 18 21:26:26 2008
@@ -126,20 +126,19 @@
if (!can_seek (stream))
return make_local_copy (file, stream);
+ info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_SIZE, 0, NULL, NULL);
+ if (!info)
+ return make_local_copy (file, stream);
+
input = g_object_new (GSF_INPUT_GIO_TYPE, NULL);
if (G_UNLIKELY (NULL == input)) {
g_input_stream_close (stream, NULL, NULL);
g_object_unref (G_OBJECT (stream));
return NULL;
}
-
- info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_SIZE, 0, NULL, NULL);
- if (info) {
- gsf_input_set_size (GSF_INPUT (input), g_file_info_get_size (info));
- g_object_unref (G_OBJECT (info));
- }
- else
- return make_local_copy (file, stream);
+
+ gsf_input_set_size (GSF_INPUT (input), g_file_info_get_size (info));
+ g_object_unref (G_OBJECT (info));
g_object_ref (G_OBJECT (file));
@@ -178,7 +177,6 @@
}
file = g_file_new_for_path (path);
-
input = gsf_input_gio_new (file, err);
g_object_unref (G_OBJECT (file));
@@ -206,7 +204,6 @@
}
file = g_file_new_for_uri (uri);
-
input = gsf_input_gio_new (file, err);
g_object_unref (G_OBJECT (file));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]