- * storage when necessary. To construct a fixed-size output stream,
- * pass %NULL as @realloc_fn.
+ * storage when necessary and the stream will be considered resizable.
+ * In that case, the stream will start out being (conceptually) empty.
+ * @size is used only as a hint for how big @data is. Specifically,
+ * seeking to the end of a newly-created stream will seek to zero, not
+ * @size. Seeking past the end of the stream and then writing will
+ * introduce a zero-filled gap.
+ *
+ * If @realloc_fn is %NULL then the stream is fixed-sized. Seeking to
+ * the end will seek to @size exactly. Writing past the end will give
+ * an 'out of space' error. Attempting to seek past the end will fail.
+ * Unlike the resizable case, seeking to an offset within the stream and
+ * writing will preserve the bytes passed in as @data before that point
+ * and will return them as part of g_memory_output_stream_steal_data().
+ * If you intend to seek you should probably therefore ensure that @data
+ * is properly initialised.