diff options
| author | Patrick Griffis <pgriffis@igalia.com> | 2020-11-14 12:13:30 -0600 |
|---|---|---|
| committer | Patrick Griffis <pgriffis@igalia.com> | 2020-11-14 12:13:30 -0600 |
| commit | 4ae215b4895e6611176d1089fcac0a7d69423220 (patch) | |
| tree | 73c4380fb39fa798ea65df7a9c3f816158d2e736 | |
| parent | e2dcb40b76fa33974a17e0b9445fa3700f0d23e0 (diff) | |
| download | libsoup-4ae215b4895e6611176d1089fcac0a7d69423220.tar.gz | |
Use GLib API for atomic reference counting
| -rw-r--r-- | libsoup/server/soup-message-body.c | 8 | ||||
| -rw-r--r-- | libsoup/soup-message-headers.c | 9 | ||||
| -rw-r--r-- | libsoup/soup-socket-properties.c | 7 | ||||
| -rw-r--r-- | libsoup/soup-socket-properties.h | 2 |
4 files changed, 14 insertions, 12 deletions
diff --git a/libsoup/server/soup-message-body.c b/libsoup/server/soup-message-body.c index 321f4075..d31121ef 100644 --- a/libsoup/server/soup-message-body.c +++ b/libsoup/server/soup-message-body.c @@ -62,7 +62,7 @@ typedef struct { GBytes *flattened; gboolean accumulate; goffset base_offset; - int ref_count; + gatomicrefcount ref_count; } SoupMessageBodyPrivate; /** @@ -80,7 +80,7 @@ soup_message_body_new (void) priv = g_slice_new0 (SoupMessageBodyPrivate); priv->accumulate = TRUE; - priv->ref_count = 1; + g_atomic_ref_count_init (&priv->ref_count); return (SoupMessageBody *)priv; } @@ -402,7 +402,7 @@ soup_message_body_copy (SoupMessageBody *body) { SoupMessageBodyPrivate *priv = (SoupMessageBodyPrivate *)body; - g_atomic_int_inc (&priv->ref_count); + g_atomic_ref_count_inc (&priv->ref_count); return body; } @@ -418,7 +418,7 @@ soup_message_body_free (SoupMessageBody *body) { SoupMessageBodyPrivate *priv = (SoupMessageBodyPrivate *)body; - if (!g_atomic_int_dec_and_test (&priv->ref_count)) + if (!g_atomic_ref_count_dec (&priv->ref_count)) return; soup_message_body_truncate (body); diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c index c84d7504..588f03a0 100644 --- a/libsoup/soup-message-headers.c +++ b/libsoup/soup-message-headers.c @@ -59,7 +59,7 @@ struct _SoupMessageHeaders { SoupExpectation expectations; char *content_type; - int ref_count; + gatomicrefcount ref_count; }; /** @@ -82,7 +82,8 @@ soup_message_headers_new (SoupMessageHeadersType type) hdrs->array = g_array_sized_new (TRUE, FALSE, sizeof (SoupHeader), 5); hdrs->type = type; hdrs->encoding = -1; - hdrs->ref_count = 1; + + g_atomic_ref_count_init (&hdrs->ref_count); return hdrs; } @@ -90,7 +91,7 @@ soup_message_headers_new (SoupMessageHeadersType type) static SoupMessageHeaders * soup_message_headers_copy (SoupMessageHeaders *hdrs) { - g_atomic_int_inc (&hdrs->ref_count); + g_atomic_ref_count_inc (&hdrs->ref_count); return hdrs; } @@ -103,7 +104,7 @@ soup_message_headers_copy (SoupMessageHeaders *hdrs) void soup_message_headers_free (SoupMessageHeaders *hdrs) { - if (!g_atomic_int_dec_and_test (&hdrs->ref_count)) + if (!g_atomic_ref_count_dec (&hdrs->ref_count)) return; soup_message_headers_clear (hdrs); diff --git a/libsoup/soup-socket-properties.c b/libsoup/soup-socket-properties.c index 622d69d4..5ceecd76 100644 --- a/libsoup/soup-socket-properties.c +++ b/libsoup/soup-socket-properties.c @@ -21,7 +21,8 @@ soup_socket_properties_new (GProxyResolver *proxy_resolver, SoupSocketProperties *props; props = g_slice_new (SoupSocketProperties); - props->ref_count = 1; + + g_atomic_ref_count_init (&props->ref_count); props->proxy_resolver = proxy_resolver ? g_object_ref (proxy_resolver) : NULL; props->local_addr = local_addr ? g_object_ref (local_addr) : NULL; @@ -38,14 +39,14 @@ soup_socket_properties_new (GProxyResolver *proxy_resolver, SoupSocketProperties * soup_socket_properties_ref (SoupSocketProperties *props) { - g_atomic_int_inc (&props->ref_count); + g_atomic_ref_count_inc (&props->ref_count); return props; } void soup_socket_properties_unref (SoupSocketProperties *props) { - if (!g_atomic_int_dec_and_test (&props->ref_count)) + if (!g_atomic_ref_count_dec (&props->ref_count)) return; g_clear_object (&props->proxy_resolver); diff --git a/libsoup/soup-socket-properties.h b/libsoup/soup-socket-properties.h index 68b26f7f..8f77a43d 100644 --- a/libsoup/soup-socket-properties.h +++ b/libsoup/soup-socket-properties.h @@ -19,7 +19,7 @@ typedef struct { guint idle_timeout; /*< private >*/ - guint ref_count; + gatomicrefcount ref_count; } SoupSocketProperties; GType soup_socket_properties_get_type (void); |
