[libsoup/carlosgc/clean-refcounted: 3/4] server: rename soup_message_body_free as soup_message_body_unref




commit 2f965b4cbab0832aa19c5ebc025cfedb4906d8d8
Author: Carlos Garcia Campos <cgarcia igalia com>
Date:   Wed Mar 24 10:58:38 2021 +0100

    server: rename soup_message_body_free as soup_message_body_unref
    
    And copy() as ref() that is now public.

 docs/reference/libsoup-3.0-sections.txt |  3 ++-
 libsoup/server/soup-message-body.c      | 25 +++++++++++++++++--------
 libsoup/server/soup-message-body.h      | 11 ++++++-----
 libsoup/server/soup-server-message.c    |  4 ++--
 4 files changed, 27 insertions(+), 16 deletions(-)
---
diff --git a/docs/reference/libsoup-3.0-sections.txt b/docs/reference/libsoup-3.0-sections.txt
index c7a31244..9b08dc8c 100644
--- a/docs/reference/libsoup-3.0-sections.txt
+++ b/docs/reference/libsoup-3.0-sections.txt
@@ -175,7 +175,8 @@ SoupMemoryUse
 <SUBSECTION>
 SoupMessageBody
 soup_message_body_new
-soup_message_body_free
+soup_message_body_ref
+soup_message_body_unref
 <SUBSECTION>
 soup_message_body_set_accumulate
 soup_message_body_get_accumulate
diff --git a/libsoup/server/soup-message-body.c b/libsoup/server/soup-message-body.c
index 28ef1bf3..ba451fd8 100644
--- a/libsoup/server/soup-message-body.c
+++ b/libsoup/server/soup-message-body.c
@@ -387,8 +387,16 @@ soup_message_body_wrote_chunk (SoupMessageBody *body, GBytes *chunk)
        g_bytes_unref (chunk2);
 }
 
-static SoupMessageBody *
-soup_message_body_copy (SoupMessageBody *body)
+/**
+ * soup_message_body_ref:
+ * @body: a #SoupMessageBody
+ *
+ * Atomically increments the reference count of @body by one.
+ *
+ * Returns: the passed in #SoupMessageBody
+ */
+SoupMessageBody *
+soup_message_body_ref (SoupMessageBody *body)
 {
         g_atomic_rc_box_acquire (body);
 
@@ -396,16 +404,17 @@ soup_message_body_copy (SoupMessageBody *body)
 }
 
 /**
- * soup_message_body_free:
+ * soup_message_body_unref:
  * @body: a #SoupMessageBody
  *
- * Frees @body. You will not normally need to use this, as
- * #SoupMessage frees its associated message bodies automatically.
- **/
+ * Atomically decrements the reference count of @body by one.
+ * When the reference count reaches zero, the resources allocated by
+ * @body are freed
+ */
 void
-soup_message_body_free (SoupMessageBody *body)
+soup_message_body_unref (SoupMessageBody *body)
 {
         g_atomic_rc_box_release_full (body, (GDestroyNotify)soup_message_body_truncate);
 }
 
-G_DEFINE_BOXED_TYPE (SoupMessageBody, soup_message_body, soup_message_body_copy, soup_message_body_free)
+G_DEFINE_BOXED_TYPE (SoupMessageBody, soup_message_body, soup_message_body_ref, soup_message_body_unref)
diff --git a/libsoup/server/soup-message-body.h b/libsoup/server/soup-message-body.h
index 5894f0bd..baaf8c5c 100644
--- a/libsoup/server/soup-message-body.h
+++ b/libsoup/server/soup-message-body.h
@@ -27,6 +27,12 @@ GType soup_message_body_get_type (void);
 SOUP_AVAILABLE_IN_ALL
 SoupMessageBody *soup_message_body_new           (void);
 
+SOUP_AVAILABLE_IN_ALL
+SoupMessageBody *soup_message_body_ref           (SoupMessageBody *body);
+
+SOUP_AVAILABLE_IN_ALL
+void             soup_message_body_unref         (SoupMessageBody *body);
+
 SOUP_AVAILABLE_IN_ALL
 void             soup_message_body_set_accumulate(SoupMessageBody *body,
                                                  gboolean         accumulate);
@@ -64,9 +70,4 @@ SOUP_AVAILABLE_IN_ALL
 void             soup_message_body_wrote_chunk   (SoupMessageBody *body,
                                                  GBytes          *chunk);
 
-SOUP_AVAILABLE_IN_ALL
-void             soup_message_body_free          (SoupMessageBody *body);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (SoupMessageBody, soup_message_body_free)
-
 G_END_DECLS
diff --git a/libsoup/server/soup-server-message.c b/libsoup/server/soup-server-message.c
index 40f92c7e..22311c5b 100644
--- a/libsoup/server/soup-server-message.c
+++ b/libsoup/server/soup-server-message.c
@@ -130,9 +130,9 @@ soup_server_message_finalize (GObject *object)
         g_clear_pointer (&msg->uri, g_uri_unref);
         g_free (msg->reason_phrase);
 
-        soup_message_body_free (msg->request_body);
+        soup_message_body_unref (msg->request_body);
         soup_message_headers_free (msg->request_headers);
-        soup_message_body_free (msg->response_body);
+        soup_message_body_unref (msg->response_body);
         soup_message_headers_free (msg->response_headers);
 
         G_OBJECT_CLASS (soup_server_message_parent_class)->finalize (object);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]