/pidgin/main: 18146230e402: queuedoutputstream: Remove usage of ...
Mike Ruprecht <[email protected]> Tue, 06 Sep 2016 11:19:21 -0400
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 18146230e402f65a648c1fa461d5a477820adb78 Author: Mike Ruprecht <[email protected]> Date: 2016-08-29 23:43 -0500 Branch: default URL: https://hg.pidgin.im/pidgin/main/rev/18146230e402 Description: queuedoutputstream: Remove usage of g_async_queue_push_front() g_async_queue_push_front() is from GLib 2.46+. As of this commit, we depend on GLib 2.34, though it should be 2.36, but that's for another commit. This patch removes usage of that function so we don't require nearly as high of a GLib version. diffstat: libpurple/queuedoutputstream.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diffs (56 lines): diff --git a/libpurple/queuedoutputstream.c b/libpurple/queuedoutputstream.c --- a/libpurple/queuedoutputstream.c +++ b/libpurple/queuedoutputstream.c @@ -26,6 +26,7 @@ struct _PurpleQueuedOutputStreamPrivate { GAsyncQueue *queue; + GBytes *next; }; GObjectClass *parent_class = NULL; @@ -99,26 +100,32 @@ purple_queued_output_stream_dispose(GObj G_OBJECT_CLASS(parent_class)->dispose(object); g_clear_pointer(&stream->priv->queue, g_async_queue_unref); + g_clear_pointer(&stream->priv->next, g_bytes_unref); } static gboolean purple_queued_output_stream_flush(GOutputStream *stream, GCancellable *cancellable, GError **error) { + PurpleQueuedOutputStreamPrivate *priv; GOutputStream *base_stream; - GAsyncQueue *queue; GBytes *bytes; const void *buffer; gsize count; gsize bytes_written = 0; gboolean ret = TRUE; + priv = PURPLE_QUEUED_OUTPUT_STREAM(stream)->priv; base_stream = g_filter_output_stream_get_base_stream( G_FILTER_OUTPUT_STREAM(stream)); - queue = PURPLE_QUEUED_OUTPUT_STREAM(stream)->priv->queue; do { - bytes = g_async_queue_try_pop(queue); + if (priv->next != NULL) { + bytes = priv->next; + priv->next = NULL; + } else { + bytes = g_async_queue_try_pop(priv->queue); + } if (bytes == NULL) { break; @@ -140,7 +147,7 @@ purple_queued_output_stream_flush(GOutpu queue_bytes = g_bytes_ref(bytes); } - g_async_queue_push_front(queue, queue_bytes); + priv->next = queue_bytes; } g_bytes_unref(bytes); _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits