X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgmemoryoutputstream.c;h=78c1139546aae7772fbbc87ab585d58d28eb6578;hb=a5876e5fc1b1e192e8cde664780957798b8a2607;hp=6b20c0add2dffc7fb727ebc648612cc614c0bd6b;hpb=69801f8dc84c0c9403df6802eccc5d03328cd3ae;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gmemoryoutputstream.c b/gio/gmemoryoutputstream.c index 6b20c0a..78c1139 100644 --- a/gio/gmemoryoutputstream.c +++ b/gio/gmemoryoutputstream.c @@ -31,7 +31,6 @@ #include "string.h" #include "glibintl.h" -#include "gioalias.h" /** * SECTION:gmemoryoutputstream @@ -195,7 +194,7 @@ g_memory_output_stream_class_init (GMemoryOutputStreamClass *klass) G_PARAM_STATIC_STRINGS)); /** - * GMemoryOutputStream:realloc-function: + * GMemoryOutputStream:realloc-function: (skip) * * Function with realloc semantics called to enlarge the buffer. * @@ -210,7 +209,7 @@ g_memory_output_stream_class_init (GMemoryOutputStreamClass *klass) G_PARAM_STATIC_STRINGS)); /** - * GMemoryOutputStream:destroy-function: + * GMemoryOutputStream:destroy-function: (skip) * * Function called with the buffer as argument when the stream is destroyed. * @@ -329,7 +328,7 @@ g_memory_output_stream_init (GMemoryOutputStream *stream) } /** - * g_memory_output_stream_new: + * g_memory_output_stream_new: (skip) * @data: pointer to a chunk of memory to use, or %NULL * @size: the size of @data * @realloc_function: a function with realloc() semantics (like g_realloc()) @@ -385,7 +384,7 @@ g_memory_output_stream_new (gpointer data, * Note that the returned pointer may become invalid on the next * write or truncate operation on the stream. * - * Returns: pointer to the stream's data + * Returns: (transfer none): pointer to the stream's data **/ gpointer g_memory_output_stream_get_data (GMemoryOutputStream *ostream) @@ -399,7 +398,7 @@ g_memory_output_stream_get_data (GMemoryOutputStream *ostream) * g_memory_output_stream_get_size: * @ostream: a #GMemoryOutputStream * - * Gets the size of the currently allocated data area (availible from + * Gets the size of the currently allocated data area (available from * g_memory_output_stream_get_data()). If the stream isn't * growable (no realloc was passed to g_memory_output_stream_new()) then * this is the maximum size of the stream and further writes @@ -441,6 +440,35 @@ g_memory_output_stream_get_data_size (GMemoryOutputStream *ostream) return ostream->priv->valid_len; } +/** + * g_memory_output_stream_steal_data: + * @ostream: a #GMemoryOutputStream + * + * Gets any loaded data from the @ostream. Ownership of the data + * is transferred to the caller; when no longer needed it must be + * freed using the free function set in @ostream's + * #GMemoryOutputStream:destroy-function property. + * + * @ostream must be closed before calling this function. + * + * Returns: (transfer full): the stream's data + * + * Since: 2.26 + **/ +gpointer +g_memory_output_stream_steal_data (GMemoryOutputStream *ostream) +{ + gpointer data; + + g_return_val_if_fail (G_IS_MEMORY_OUTPUT_STREAM (ostream), NULL); + g_return_val_if_fail (g_output_stream_is_closed (G_OUTPUT_STREAM (ostream)), NULL); + + data = ostream->priv->data; + ostream->priv->data = NULL; + + return data; +} + static gboolean array_resize (GMemoryOutputStream *ostream, gsize size, @@ -594,11 +622,11 @@ g_memory_output_stream_write_async (GOutputStream *stream, GSimpleAsyncResult *simple; gssize nwritten; - nwritten = g_memory_output_stream_write (stream, - buffer, - count, - cancellable, - NULL); + nwritten = g_output_stream_write (stream, + buffer, + count, + cancellable, + NULL); simple = g_simple_async_result_new (G_OBJECT (stream), callback, @@ -768,6 +796,3 @@ g_memory_output_stream_truncate (GSeekable *seekable, return TRUE; } - -#define __G_MEMORY_OUTPUT_STREAM_C__ -#include "gioaliasdef.c"