Use g_memory_output_stream_steal_data here
authorChristian Persch <chpe@gnome.org>
Sun, 20 Jun 2010 12:33:27 +0000 (14:33 +0200)
committerChristian Persch <chpe@gnome.org>
Tue, 17 Aug 2010 22:13:27 +0000 (00:13 +0200)
... instead of one extra g_memdup().

Bug #627181.

gio/gdbusmessage.c

index 0d2e15e..51e36ca 100644 (file)
@@ -2268,8 +2268,11 @@ g_dbus_message_to_blob (GDBusMessage          *message,
 
   g_data_output_stream_put_uint32 (dos, body_size, NULL, NULL);
 
+  if (!g_output_stream_close (G_OUTPUT_STREAM (dos), NULL, error))
+    goto out;
+
   *out_size = size;
-  ret = g_memdup (g_memory_output_stream_get_data (mos), size);
+  ret = g_memory_output_stream_steal_data (mos);
 
  out:
   g_object_unref (dos);