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); }