From 2084fe5e81b4aeef4b1c73ad1aaad8f8909f28c4 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Tue, 21 Mar 2023 01:59:19 -0500 Subject: Use g_clear_handle_id everywhere Testing Done: Compiled and ran tests in valgrind. Reviewed at https://reviews.imfreedom.org/r/2374/ --- libpurple/accounts.c | 6 ++---- libpurple/buddylist.c | 5 ++--- libpurple/connection.c | 5 +---- libpurple/idle.c | 12 +++--------- libpurple/mediamanager.c | 22 ++++------------------ libpurple/prefs.c | 5 ++--- libpurple/protocols/bonjour/xmpp.c | 20 +++++--------------- libpurple/protocols/facebook/data.c | 4 ++-- libpurple/protocols/facebook/mqtt.c | 10 ++-------- libpurple/protocols/gg/edisc.c | 5 +---- libpurple/protocols/gg/gg.c | 11 +++-------- libpurple/protocols/gg/roster.c | 3 +-- libpurple/protocols/gg/tcpsocket.c | 5 +---- libpurple/protocols/irc/dcc_send.c | 10 +++------- libpurple/protocols/irc/irc.c | 3 +-- libpurple/protocols/jabber/bosh.c | 8 ++------ libpurple/protocols/jabber/buddy.c | 3 +-- libpurple/protocols/jabber/caps.c | 5 ++--- libpurple/protocols/jabber/jabber.c | 22 ++++++---------------- libpurple/protocols/jabber/ping.c | 5 +---- libpurple/protocols/jabber/si.c | 14 +++----------- libpurple/purpleconversationmember.c | 10 ++-------- libpurple/purpleimconversation.c | 19 +++---------------- libpurple/savedstatuses.c | 6 ++---- 24 files changed, 55 insertions(+), 163 deletions(-) (limited to 'libpurple') diff --git a/libpurple/accounts.c b/libpurple/accounts.c index 4293e10545..0b064c9d95 100644 --- a/libpurple/accounts.c +++ b/libpurple/accounts.c @@ -679,10 +679,8 @@ void purple_accounts_uninit(void) { gpointer handle = purple_accounts_get_handle(); - if (save_timer != 0) - { - g_source_remove(save_timer); - save_timer = 0; + if(save_timer != 0) { + g_clear_handle_id(&save_timer, g_source_remove); sync_accounts(); } diff --git a/libpurple/buddylist.c b/libpurple/buddylist.c index 81abd33acc..fb77bfb61c 100644 --- a/libpurple/buddylist.c +++ b/libpurple/buddylist.c @@ -2171,9 +2171,8 @@ purple_blist_uninit(void) if (purplebuddylist == NULL) return; - if (save_timer != 0) { - g_source_remove(save_timer); - save_timer = 0; + if(save_timer != 0) { + g_clear_handle_id(&save_timer, g_source_remove); purple_blist_sync(); } diff --git a/libpurple/connection.c b/libpurple/connection.c index 9511fcf443..8b6be13f03 100644 --- a/libpurple/connection.c +++ b/libpurple/connection.c @@ -837,10 +837,7 @@ purple_connection_dispose(GObject *obj) { g_clear_object(&priv->account); - if(priv->disconnect_timeout > 0) { - g_source_remove(priv->disconnect_timeout); - priv->disconnect_timeout = 0; - } + g_clear_handle_id(&priv->disconnect_timeout, g_source_remove); G_OBJECT_CLASS(purple_connection_parent_class)->dispose(obj); } diff --git a/libpurple/idle.c b/libpurple/idle.c index b999f2cdba..2168f52a7e 100644 --- a/libpurple/idle.c +++ b/libpurple/idle.c @@ -282,9 +282,7 @@ idle_reporting_cb(G_GNUC_UNUSED const char *name, G_GNUC_UNUSED PurplePrefType type, G_GNUC_UNUSED gconstpointer val, G_GNUC_UNUSED gpointer data) { - if (idle_timer) - g_source_remove(idle_timer); - idle_timer = 0; + g_clear_handle_id(&idle_timer, g_source_remove); check_idleness_timer(NULL); } @@ -294,9 +292,7 @@ purple_idle_touch(void) time(&last_active_time); if (!no_away) { - if (idle_timer) - g_source_remove(idle_timer); - idle_timer = 0; + g_clear_handle_id(&idle_timer, g_source_remove); check_idleness_timer(NULL); } } @@ -373,9 +369,7 @@ purple_idle_uninit(void) purple_prefs_disconnect_by_handle(purple_idle_get_handle()); /* Remove the idle timer */ - if (idle_timer > 0) - g_source_remove(idle_timer); - idle_timer = 0; + g_clear_handle_id(&idle_timer, g_source_remove); g_clear_object(&idle_ui); } diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c index 1b5613cc2e..9c2e6ec471 100644 --- a/libpurple/mediamanager.c +++ b/libpurple/mediamanager.c @@ -479,15 +479,8 @@ free_appdata_info_locked (PurpleMediaAppDataInfo *info) info->readable_cb_token = 0; info->writable_cb_token = 0; - if (info->readable_timer_id) { - g_source_remove (info->readable_timer_id); - info->readable_timer_id = 0; - } - - if (info->writable_timer_id) { - g_source_remove (info->writable_timer_id); - info->writable_timer_id = 0; - } + g_clear_handle_id(&info->readable_timer_id, g_source_remove); + g_clear_handle_id(&info->writable_timer_id, g_source_remove); g_clear_pointer(&info->current_sample, gst_sample_unref); @@ -1582,15 +1575,8 @@ purple_media_manager_set_application_data_callbacks(PurpleMediaManager *manager, info->notify (info->user_data); } - if (info->readable_cb_token) { - g_source_remove (info->readable_timer_id); - info->readable_cb_token = 0; - } - - if (info->writable_cb_token) { - g_source_remove (info->writable_timer_id); - info->writable_cb_token = 0; - } + g_clear_handle_id(&info->readable_cb_token, g_source_remove); + g_clear_handle_id(&info->writable_cb_token, g_source_remove); if (callbacks) { info->callbacks = *callbacks; diff --git a/libpurple/prefs.c b/libpurple/prefs.c index 83e5d4d7c5..268cefc9b3 100644 --- a/libpurple/prefs.c +++ b/libpurple/prefs.c @@ -1478,9 +1478,8 @@ purple_prefs_init(void) void purple_prefs_uninit(void) { - if (save_timer != 0) - { - g_source_remove(save_timer); + if(save_timer != 0) { + g_clear_handle_id(&save_timer, g_source_remove); save_cb(NULL); } diff --git a/libpurple/protocols/bonjour/xmpp.c b/libpurple/protocols/bonjour/xmpp.c index 0f9ae2da00..883013286a 100644 --- a/libpurple/protocols/bonjour/xmpp.c +++ b/libpurple/protocols/bonjour/xmpp.c @@ -254,8 +254,7 @@ _send_data_write_cb(GObject *stream, gpointer data) writelen = purple_circular_buffer_get_max_read(bconv->tx_buf); if (writelen == 0) { - g_source_remove(bconv->tx_handler); - bconv->tx_handler = 0; + g_clear_handle_id(&bconv->tx_handler, g_source_remove); return; } @@ -525,8 +524,7 @@ _start_stream(GObject *stream, gpointer data) bconv->stream_data = NULL; /* Stream started; process the send buffer if there is one */ - g_source_remove(bconv->tx_handler); - bconv->tx_handler = 0; + g_clear_handle_id(&bconv->tx_handler, g_source_remove); bconv->sent_stream_start = FULLY_SENT; bonjour_xmpp_stream_started(bconv); @@ -1187,14 +1185,8 @@ bonjour_xmpp_close_conversation(BonjourXMPPConversation *bconv) G_INPUT_STREAM(bconv->input), G_OUTPUT_STREAM(bconv->output)); } - if (bconv->rx_handler != 0) { - g_source_remove(bconv->rx_handler); - bconv->rx_handler = 0; - } - if (bconv->tx_handler != 0) { - g_source_remove(bconv->tx_handler); - bconv->tx_handler = 0; - } + g_clear_handle_id(&bconv->rx_handler, g_source_remove); + g_clear_handle_id(&bconv->tx_handler, g_source_remove); /* Cancel any pending operations. */ if (bconv->cancellable != NULL) { @@ -1218,9 +1210,7 @@ bonjour_xmpp_close_conversation(BonjourXMPPConversation *bconv) bonjour_parser_setup(bconv); } - if (bconv->close_timeout != 0) { - g_source_remove(bconv->close_timeout); - } + g_clear_handle_id(&bconv->close_timeout, g_source_remove); g_free(bconv->buddy_name); g_free(bconv->ip); diff --git a/libpurple/protocols/facebook/data.c b/libpurple/protocols/facebook/data.c index 3f58c0803a..b9288162ad 100644 --- a/libpurple/protocols/facebook/data.c +++ b/libpurple/protocols/facebook/data.c @@ -292,8 +292,8 @@ fb_data_clear_timeout(FbData *fata, const gchar *name, gboolean remove) ptr = g_hash_table_lookup(fata->evs, name); id = GPOINTER_TO_UINT(ptr); - if ((id > 0) && remove) { - g_source_remove(id); + if(remove) { + g_clear_handle_id(&id, g_source_remove); } g_hash_table_remove(fata->evs, name); diff --git a/libpurple/protocols/facebook/mqtt.c b/libpurple/protocols/facebook/mqtt.c index adced88b1f..b666010b0e 100644 --- a/libpurple/protocols/facebook/mqtt.c +++ b/libpurple/protocols/facebook/mqtt.c @@ -217,10 +217,7 @@ fb_mqtt_close(FbMqtt *mqtt) { g_return_if_fail(FB_IS_MQTT(mqtt)); - if(mqtt->tev > 0) { - g_source_remove(mqtt->tev); - mqtt->tev = 0; - } + g_clear_handle_id(&mqtt->tev, g_source_remove); if(mqtt->cancellable != NULL) { g_cancellable_cancel(mqtt->cancellable); @@ -303,10 +300,7 @@ fb_mqtt_cb_timeout(gpointer data) static void fb_mqtt_timeout_clear(FbMqtt *mqtt) { - if(mqtt->tev > 0) { - g_source_remove(mqtt->tev); - mqtt->tev = 0; - } + g_clear_handle_id(&mqtt->tev, g_source_remove); } static void diff --git a/libpurple/protocols/gg/edisc.c b/libpurple/protocols/gg/edisc.c index c9f7fa61d1..03573c67c0 100644 --- a/libpurple/protocols/gg/edisc.c +++ b/libpurple/protocols/gg/edisc.c @@ -1467,10 +1467,7 @@ ggp_xfer_finalize(GObject *obj) { #endif g_clear_object(&edisc_xfer->msg); - if(edisc_xfer->handler) { - g_source_remove(edisc_xfer->handler); - edisc_xfer->handler = 0; - } + g_clear_handle_id(&edisc_xfer->handler, g_source_remove); if (edisc_xfer->ticket_id != NULL) { g_hash_table_remove(sdata->xfers_initialized, diff --git a/libpurple/protocols/gg/gg.c b/libpurple/protocols/gg/gg.c index e183370b4d..34294eb6b9 100644 --- a/libpurple/protocols/gg/gg.c +++ b/libpurple/protocols/gg/gg.c @@ -516,8 +516,7 @@ ggp_async_login_handler(gpointer _gc, G_GNUC_UNUSED gint fd, purple_debug_info("gg", "login_handler: session: check = %d; state = %d;\n", info->session->check, info->session->state); - g_source_remove(info->inpa); - info->inpa = 0; + g_clear_handle_id(&info->inpa, g_source_remove); /** XXX I think that this shouldn't be done if ev->type is GG_EVENT_CONN_FAILED or GG_EVENT_CONN_SUCCESS -datallah */ if (info->session->fd >= 0) @@ -550,10 +549,7 @@ ggp_async_login_handler(gpointer _gc, G_GNUC_UNUSED gint fd, } break; case GG_EVENT_CONN_FAILED: - if (info->inpa > 0) { - g_source_remove(info->inpa); - info->inpa = 0; - } + g_clear_handle_id(&info->inpa, g_source_remove); purple_debug_info("gg", "Connection failure: %d\n", ev->event.failure); switch (ev->event.failure) { @@ -909,8 +905,7 @@ ggp_close(G_GNUC_UNUSED PurpleProtocol *protocol, PurpleConnection *gc) { ggp_message_cleanup(gc); ggp_edisc_cleanup(gc); - if (info->inpa > 0) - g_source_remove(info->inpa); + g_clear_handle_id(&info->inpa, g_source_remove); g_free(info->imtoken); if (info->http) { diff --git a/libpurple/protocols/gg/roster.c b/libpurple/protocols/gg/roster.c index 1072f3f121..8a5c409ca1 100644 --- a/libpurple/protocols/gg/roster.c +++ b/libpurple/protocols/gg/roster.c @@ -239,8 +239,7 @@ void ggp_roster_cleanup(PurpleConnection *gc) { ggp_roster_session_data *rdata = ggp_roster_get_rdata(gc); - if (rdata->timer) - g_source_remove(rdata->timer); + g_clear_handle_id(&rdata->timer, g_source_remove); ggp_roster_content_free(rdata->content); g_list_free_full(rdata->sent_updates, ggp_roster_change_free); g_list_free_full(rdata->pending_updates, ggp_roster_change_free); diff --git a/libpurple/protocols/gg/tcpsocket.c b/libpurple/protocols/gg/tcpsocket.c index 5f9fa71c6a..abfb4870db 100644 --- a/libpurple/protocols/gg/tcpsocket.c +++ b/libpurple/protocols/gg/tcpsocket.c @@ -115,10 +115,7 @@ ggp_tcpsocket_connected(GObject *source, GAsyncResult *res, gpointer user_data) info = purple_connection_get_protocol_data(data->gc); - if (info->inpa > 0) { - g_source_remove(info->inpa); - info->inpa = 0; - } + g_clear_handle_id(&info->inpa, g_source_remove); if (info->session->fd < 0) return; diff --git a/libpurple/protocols/irc/dcc_send.c b/libpurple/protocols/irc/dcc_send.c index f1354ff6ac..35fc61518c 100644 --- a/libpurple/protocols/irc/dcc_send.c +++ b/libpurple/protocols/irc/dcc_send.c @@ -173,8 +173,7 @@ irc_dccsend_send_read(gpointer data, int source, return; else if (len <= 0) { /* XXX: Shouldn't this be canceling the transfer? */ - g_source_remove(xd->inpa); - xd->inpa = 0; + g_clear_handle_id(&xd->inpa, g_source_remove); return; } @@ -203,8 +202,7 @@ irc_dccsend_send_read(gpointer data, int source, } if ((goffset)acked >= purple_xfer_get_size(xfer)) { - g_source_remove(xd->inpa); - xd->inpa = 0; + g_clear_handle_id(&xd->inpa, g_source_remove); purple_xfer_set_completed(xfer, TRUE); purple_xfer_end(xfer); return; @@ -387,9 +385,7 @@ irc_xfer_finalize(GObject *obj) { g_socket_service_stop(xfer->service); } g_clear_object(&xfer->service); - if(xfer->inpa > 0) { - g_source_remove(xfer->inpa); - } + g_clear_handle_id(&xfer->inpa, g_source_remove); g_clear_object(&xfer->conn); G_OBJECT_CLASS(irc_xfer_parent_class)->finalize(obj); diff --git a/libpurple/protocols/irc/irc.c b/libpurple/protocols/irc/irc.c index a8d9f5d7bd..4304650b88 100644 --- a/libpurple/protocols/irc/irc.c +++ b/libpurple/protocols/irc/irc.c @@ -708,8 +708,7 @@ irc_close(G_GNUC_UNUSED PurpleProtocol *protocol, PurpleConnection *gc) { g_clear_object(&irc->output); g_clear_object(&irc->conn); - if (irc->timer) - g_source_remove(irc->timer); + g_clear_handle_id(&irc->timer, g_source_remove); g_hash_table_destroy(irc->cmds); g_hash_table_destroy(irc->msgs); g_hash_table_destroy(irc->buddies); diff --git a/libpurple/protocols/jabber/bosh.c b/libpurple/protocols/jabber/bosh.c index 6af10f05bc..121d939c7f 100644 --- a/libpurple/protocols/jabber/bosh.c +++ b/libpurple/protocols/jabber/bosh.c @@ -155,8 +155,7 @@ jabber_bosh_connection_destroy(PurpleJabberBOSHConnection *conn) jabber_bosh_connection_send_now(conn); } - if (conn->send_timer) - g_source_remove(conn->send_timer); + g_clear_handle_id(&conn->send_timer, g_source_remove); soup_session_abort(conn->payload_reqs); @@ -295,10 +294,7 @@ jabber_bosh_connection_send_now(PurpleJabberBOSHConnection *conn) g_return_if_fail(conn != NULL); - if (conn->send_timer != 0) { - g_source_remove(conn->send_timer); - conn->send_timer = 0; - } + g_clear_handle_id(&conn->send_timer, g_source_remove); if (conn->sid == NULL) return; diff --git a/libpurple/protocols/jabber/buddy.c b/libpurple/protocols/jabber/buddy.c index d04f97cae1..5abb850808 100644 --- a/libpurple/protocols/jabber/buddy.c +++ b/libpurple/protocols/jabber/buddy.c @@ -705,8 +705,7 @@ jabber_setup_set_info(G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, static void jabber_buddy_info_destroy(JabberBuddyInfo *jbi) { /* Remove the timeout, which would otherwise trigger jabber_buddy_get_info_timeout() */ - if (jbi->timeout_handle > 0) - g_source_remove(jbi->timeout_handle); + g_clear_handle_id(&jbi->timeout_handle, g_source_remove); g_slist_free(jbi->ids); g_free(jbi->jid); diff --git a/libpurple/protocols/jabber/caps.c b/libpurple/protocols/jabber/caps.c index 9bfc8f9c78..e1b57dcbd7 100644 --- a/libpurple/protocols/jabber/caps.c +++ b/libpurple/protocols/jabber/caps.c @@ -202,9 +202,8 @@ void jabber_caps_init(void) void jabber_caps_uninit(void) { - if (save_timer != 0) { - g_source_remove(save_timer); - save_timer = 0; + if(save_timer != 0) { + g_clear_handle_id(&save_timer, g_source_remove); do_jabber_caps_store(NULL); } g_clear_pointer(&capstable, g_hash_table_destroy); diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c index cf43c270ed..dd317f1bfe 100644 --- a/libpurple/protocols/jabber/jabber.c +++ b/libpurple/protocols/jabber/jabber.c @@ -701,8 +701,7 @@ static void tls_init(JabberStream *js) GIOStream *tls_conn; GError *error = NULL; - g_source_remove(js->inpa); - js->inpa = 0; + g_clear_handle_id(&js->inpa, g_source_remove); js->input = NULL; g_filter_output_stream_set_close_base_stream( G_FILTER_OUTPUT_STREAM(js->output), FALSE); @@ -1009,10 +1008,7 @@ jabber_close(G_GNUC_UNUSED PurpleProtocol *protocol, PurpleConnection *gc) { * * jabber_send_raw(js, "", -1); */ - if(js->inpa) { - g_source_remove(js->inpa); - js->inpa = 0; - } + g_clear_handle_id(&js->inpa, g_source_remove); purple_gio_graceful_close(js->stream, js->input, G_OUTPUT_STREAM(js->output)); } @@ -1053,12 +1049,9 @@ jabber_close(G_GNUC_UNUSED PurpleProtocol *protocol, PurpleConnection *gc) { g_free(js->old_msg); g_free(js->old_avatarhash); - if (js->keepalive_timeout != 0) - g_source_remove(js->keepalive_timeout); - if (js->inactivity_timer != 0) - g_source_remove(js->inactivity_timer); - if (js->conn_close_timeout != 0) - g_source_remove(js->conn_close_timeout); + g_clear_handle_id(&js->keepalive_timeout, g_source_remove); + g_clear_handle_id(&js->inactivity_timer, g_source_remove); + g_clear_handle_id(&js->conn_close_timeout, g_source_remove); g_cancellable_cancel(js->cancellable); g_object_unref(G_OBJECT(js->cancellable)); @@ -1447,10 +1440,7 @@ inactivity_cb(gpointer data) void jabber_stream_restart_inactivity_timer(JabberStream *js) { - if (js->inactivity_timer != 0) { - g_source_remove(js->inactivity_timer); - js->inactivity_timer = 0; - } + g_clear_handle_id(&js->inactivity_timer, g_source_remove); g_return_if_fail(js->max_inactivity > 0); diff --git a/libpurple/protocols/jabber/ping.c b/libpurple/protocols/jabber/ping.c index 7d2adae23d..b861b4829f 100644 --- a/libpurple/protocols/jabber/ping.c +++ b/libpurple/protocols/jabber/ping.c @@ -35,10 +35,7 @@ jabber_keepalive_pong_cb(JabberStream *js, G_GNUC_UNUSED const char *from, G_GNUC_UNUSED PurpleXmlNode *packet, G_GNUC_UNUSED gpointer data) { - if (js->keepalive_timeout != 0) { - g_source_remove(js->keepalive_timeout); - js->keepalive_timeout = 0; - } + g_clear_handle_id(&js->keepalive_timeout, g_source_remove); } void diff --git a/libpurple/protocols/jabber/si.c b/libpurple/protocols/jabber/si.c index 602c46ba09..5746ed3ece 100644 --- a/libpurple/protocols/jabber/si.c +++ b/libpurple/protocols/jabber/si.c @@ -185,10 +185,7 @@ jabber_si_bytestreams_connect_cb(GObject *source, GAsyncResult *result, static void jabber_si_bytestreams_ibb_timeout_remove(JabberSIXfer *jsx) { - if (jsx->ibb_timeout_handle) { - g_source_remove(jsx->ibb_timeout_handle); - jsx->ibb_timeout_handle = 0; - } + g_clear_handle_id(&jsx->ibb_timeout_handle, g_source_remove); } static gboolean @@ -1847,13 +1844,8 @@ jabber_si_xfer_finalize(GObject *obj) { jabber_iq_remove_callback_by_id(js, jsx->iq_id); } - if (jsx->connect_timeout > 0) { - g_source_remove(jsx->connect_timeout); - } - - if (jsx->ibb_timeout_handle > 0) { - g_source_remove(jsx->ibb_timeout_handle); - } + g_clear_handle_id(&jsx->connect_timeout, g_source_remove); + g_clear_handle_id(&jsx->ibb_timeout_handle, g_source_remove); g_list_free_full(jsx->streamhosts, (GDestroyNotify)jabber_bytestreams_streamhost_free); diff --git a/libpurple/purpleconversationmember.c b/libpurple/purpleconversationmember.c index aad18474ff..771e13c647 100644 --- a/libpurple/purpleconversationmember.c +++ b/libpurple/purpleconversationmember.c @@ -128,10 +128,7 @@ purple_conversation_member_dispose(GObject *obj) { g_clear_object(&member->contact_info); - if(member->typing_timeout != 0) { - g_source_remove(member->typing_timeout); - member->typing_timeout = 0; - } + g_clear_handle_id(&member->typing_timeout, g_source_remove); G_OBJECT_CLASS(purple_conversation_member_parent_class)->dispose(obj); } @@ -246,10 +243,7 @@ purple_conversation_member_set_typing_state(PurpleConversationMember *member, g_return_if_fail(PURPLE_IS_CONVERSATION_MEMBER(member)); /* Remove an existing timeout if necessary. */ - if(member->typing_timeout != 0) { - g_source_remove(member->typing_timeout); - member->typing_timeout = 0; - } + g_clear_handle_id(&member->typing_timeout, g_source_remove); /* If the state has changed, notify. */ if(state != member->typing_state) { diff --git a/libpurple/purpleimconversation.c b/libpurple/purpleimconversation.c index 5ca7c0eb0e..8ac8b9bc8a 100644 --- a/libpurple/purpleimconversation.c +++ b/libpurple/purpleimconversation.c @@ -274,10 +274,7 @@ purple_im_conversation_start_typing_timeout(PurpleIMConversation *im, { g_return_if_fail(PURPLE_IS_IM_CONVERSATION(im)); - if(im->typing_timeout > 0) { - purple_im_conversation_stop_typing_timeout(im); - } - + purple_im_conversation_stop_typing_timeout(im); im->typing_timeout = g_timeout_add_seconds(timeout, purple_im_conversation_reset_typing_cb, im); @@ -287,12 +284,7 @@ void purple_im_conversation_stop_typing_timeout(PurpleIMConversation *im) { g_return_if_fail(PURPLE_IS_IM_CONVERSATION(im)); - if(im->typing_timeout == 0) { - return; - } - - g_source_remove(im->typing_timeout); - im->typing_timeout = 0; + g_clear_handle_id(&im->typing_timeout, g_source_remove); } guint @@ -334,12 +326,7 @@ void purple_im_conversation_stop_send_typed_timeout(PurpleIMConversation *im) { g_return_if_fail(PURPLE_IS_IM_CONVERSATION(im)); - if(im->send_typed_timeout == 0) { - return; - } - - g_source_remove(im->send_typed_timeout); - im->send_typed_timeout = 0; + g_clear_handle_id(&im->typing_timeout, g_source_remove); } guint diff --git a/libpurple/savedstatuses.c b/libpurple/savedstatuses.c index 04c51b6a36..3b8b967c2a 100644 --- a/libpurple/savedstatuses.c +++ b/libpurple/savedstatuses.c @@ -1261,10 +1261,8 @@ purple_savedstatuses_uninit(void) remove_old_transient_statuses(); - if (save_timer != 0) - { - g_source_remove(save_timer); - save_timer = 0; + if(save_timer != 0) { + g_clear_handle_id(&save_timer, g_source_remove); sync_statuses(); } -- cgit v1.2.1