[libsoup] soup-uri: minor code reorg/renaming



commit e5fbda83f6045a610054b179ae60fc062bded101
Author: Dan Winship <danw gnome org>
Date:   Thu Oct 10 09:31:23 2013 -0400

    soup-uri: minor code reorg/renaming
    
    Change uri_decoded_copy() to strdup the input string *after* doing its
    g_return_val_if_fail(), to avoid pointlessly confusing code analyzers.
    
    Also, rename the function to soup_uri_decoded_copy(), since it's used
    from soup-request-data.c too and it's been annoying me that it was
    non-namespaced.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=709793

 libsoup/soup-misc-private.h |    2 +-
 libsoup/soup-request-data.c |    5 +++--
 libsoup/soup-uri.c          |   25 ++++++++++++++-----------
 3 files changed, 18 insertions(+), 14 deletions(-)
---
diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h
index e9c83f6..7ea2cde 100644
--- a/libsoup/soup-misc-private.h
+++ b/libsoup/soup-misc-private.h
@@ -10,7 +10,7 @@
 #include "soup-socket.h"
 #include "soup-message-headers.h"
 
-char *uri_decoded_copy (const char *str, int length, int *decoded_length);
+char *soup_uri_decoded_copy (const char *str, int length, int *decoded_length);
 char *soup_uri_to_string_internal (SoupURI *uri, gboolean just_path_and_query,
                                   gboolean force_port);
 gboolean soup_uri_is_http (SoupURI *uri, char **aliases);
diff --git a/libsoup/soup-request-data.c b/libsoup/soup-request-data.c
index 246854a..678e84d 100644
--- a/libsoup/soup-request-data.c
+++ b/libsoup/soup-request-data.c
@@ -96,7 +96,7 @@ soup_request_data_send (SoupRequest   *request,
                        end = comma;
 
                if (end != start)
-                       data->priv->content_type = uri_decoded_copy (start, end - start, NULL);
+                       data->priv->content_type = soup_uri_decoded_copy (start, end - start, NULL);
        }
 
        memstream = g_memory_input_stream_new ();
@@ -106,7 +106,8 @@ soup_request_data_send (SoupRequest   *request,
 
        if (*start) {
                int decoded_length = 0;
-               guchar *buf = (guchar *) uri_decoded_copy (start, strlen (start), &decoded_length);
+               guchar *buf = (guchar *) soup_uri_decoded_copy (start, strlen (start),
+                                                               &decoded_length);
 
                if (base64)
                        buf = g_base64_decode_inplace ((gchar*) buf, &data->priv->content_length);
diff --git a/libsoup/soup-uri.c b/libsoup/soup-uri.c
index 808d2cc..e3092dc 100644
--- a/libsoup/soup-uri.c
+++ b/libsoup/soup-uri.c
@@ -293,15 +293,15 @@ soup_uri_new_with_base (SoupURI *base, const char *uri_string)
                if (at && at < path) {
                        colon = strchr (uri_string, ':');
                        if (colon && colon < at) {
-                               uri->password = uri_decoded_copy (colon + 1,
-                                                                 at - colon - 1, NULL);
+                               uri->password = soup_uri_decoded_copy (colon + 1,
+                                                                      at - colon - 1, NULL);
                        } else {
                                uri->password = NULL;
                                colon = at;
                        }
 
-                       uri->user = uri_decoded_copy (uri_string,
-                                                     colon - uri_string, NULL);
+                       uri->user = soup_uri_decoded_copy (uri_string,
+                                                          colon - uri_string, NULL);
                        uri_string = at + 1;
                } else
                        uri->user = uri->password = NULL;
@@ -322,14 +322,16 @@ soup_uri_new_with_base (SoupURI *base, const char *uri_string)
                                colon = NULL;
 
                        pct = memchr (uri_string, '%', hostend - uri_string);
-                       if (!pct || (pct[1] == '2' && pct[2] == '5'))
-                               uri->host = uri_decoded_copy (uri_string, hostend - uri_string, NULL);
-                       else
+                       if (!pct || (pct[1] == '2' && pct[2] == '5')) {
+                               uri->host = soup_uri_decoded_copy (uri_string,
+                                                                  hostend - uri_string, NULL);
+                       } else
                                uri->host = g_strndup (uri_string, hostend - uri_string);
                } else {
                        colon = memchr (uri_string, ':', path - uri_string);
                        hostend = colon ? colon : path;
-                       uri->host = uri_decoded_copy (uri_string, hostend - uri_string, NULL);
+                       uri->host = soup_uri_decoded_copy (uri_string,
+                                                          hostend - uri_string, NULL);
                }
 
                if (colon && colon != path - 1) {
@@ -719,13 +721,14 @@ soup_uri_encode (const char *part, const char *escape_extra)
 #define HEXCHAR(s) ((XDIGIT (s[1]) << 4) + XDIGIT (s[2]))
 
 char *
-uri_decoded_copy (const char *part, int length, int *decoded_length)
+soup_uri_decoded_copy (const char *part, int length, int *decoded_length)
 {
        unsigned char *s, *d;
-       char *decoded = g_strndup (part, length);
+       char *decoded;
 
        g_return_val_if_fail (part != NULL, NULL);
 
+       decoded = g_strndup (part, length);
        s = d = (unsigned char *)decoded;
        do {
                if (*s == '%') {
@@ -763,7 +766,7 @@ soup_uri_decode (const char *part)
 {
        g_return_val_if_fail (part != NULL, NULL);
 
-       return uri_decoded_copy (part, strlen (part), NULL);
+       return soup_uri_decoded_copy (part, strlen (part), NULL);
 }
 
 static char *


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