From 3b9ad6e6ef030cd8487f165e8d81174bd82e4fb9 Mon Sep 17 00:00:00 2001 From: Ross Lagerwall Date: Sun, 8 Dec 2013 22:41:15 +0200 Subject: [PATCH] gio: Update GMemoryOutputStream length after truncate For GMemoryOutputStream, update valid_len when truncating so that g_memory_output_stream_get_data_size () returns the correct result. https://bugzilla.gnome.org/show_bug.cgi?id=720080 --- gio/gmemoryoutputstream.c | 2 ++ gio/tests/memory-output-stream.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/gio/gmemoryoutputstream.c b/gio/gmemoryoutputstream.c index 82747a3ab..6611eada8 100644 --- a/gio/gmemoryoutputstream.c +++ b/gio/gmemoryoutputstream.c @@ -828,6 +828,8 @@ g_memory_output_stream_truncate (GSeekable *seekable, if (!array_resize (ostream, offset, FALSE, error)) return FALSE; + ostream->priv->valid_len = offset; + return TRUE; } diff --git a/gio/tests/memory-output-stream.c b/gio/tests/memory-output-stream.c index a8b389a7d..b9be0df6b 100644 --- a/gio/tests/memory-output-stream.c +++ b/gio/tests/memory-output-stream.c @@ -50,6 +50,11 @@ test_truncate (void) g_assert_no_error (error); } + g_test_bug ("720080"); + + g_seekable_truncate (G_SEEKABLE (mo), 8192, NULL, &error); + g_assert_cmpint (g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (mo)), ==, 8192); + g_object_unref (o); g_object_unref (mo); }