From 268ec01e448ed7cedf90b37fbc27f01806637825 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Mon, 30 Oct 2017 22:10:23 +0100 Subject: [PATCH 1/1] Fix static library linking with gupnp gupnp and gupnp-av defines two internal functions with the same name: xml_util_get_element and xml_util_get_child_element_content, as a result an application such as rygel can't be build statically. To fix this issue, rename both functions as xml_util_get_element2 and xml_util_get_child_element_content2 Signed-off-by: Fabrice Fontaine --- libgupnp-av/gupnp-cds-last-change-parser.c | 2 +- libgupnp-av/gupnp-didl-lite-container.c | 4 ++-- libgupnp-av/gupnp-didl-lite-item.c | 2 +- libgupnp-av/gupnp-didl-lite-object.c | 26 +++++++++++++------------- libgupnp-av/gupnp-didl-lite-parser.c | 4 ++-- libgupnp-av/gupnp-didl-lite-writer.c | 2 +- libgupnp-av/gupnp-feature-list-parser.c | 2 +- libgupnp-av/gupnp-last-change-parser.c | 2 +- libgupnp-av/xml-util.c | 16 ++++++++-------- libgupnp-av/xml-util.h | 4 ++-- 10 files changed, 32 insertions(+), 32 deletions(-) diff --git a/libgupnp-av/gupnp-cds-last-change-parser.c b/libgupnp-av/gupnp-cds-last-change-parser.c index cff5f0b..36f6b0a 100644 --- a/libgupnp-av/gupnp-cds-last-change-parser.c +++ b/libgupnp-av/gupnp-cds-last-change-parser.c @@ -119,7 +119,7 @@ gupnp_cds_last_change_parser_parse (GUPnPCDSLastChangeParser *parser, goto out; } - state_event = xml_util_get_element ((xmlNode *) doc, + state_event = xml_util_get_element2 ((xmlNode *) doc, "StateEvent", NULL); if (state_event == NULL) { diff --git a/libgupnp-av/gupnp-didl-lite-container.c b/libgupnp-av/gupnp-didl-lite-container.c index d7ac578..c0e7395 100644 --- a/libgupnp-av/gupnp-didl-lite-container.c +++ b/libgupnp-av/gupnp-didl-lite-container.c @@ -340,7 +340,7 @@ gupnp_didl_lite_container_container_update_id_is_set xml_node = gupnp_didl_lite_object_get_xml_node (GUPNP_DIDL_LITE_OBJECT (container)); - content = xml_util_get_child_element_content (xml_node, + content = xml_util_get_child_element_content2 (xml_node, "containerUpdateID"); return content != NULL; } @@ -390,7 +390,7 @@ gupnp_didl_lite_container_total_deleted_child_count_is_set xml_node = gupnp_didl_lite_object_get_xml_node (GUPNP_DIDL_LITE_OBJECT (container)); - content = xml_util_get_child_element_content (xml_node, + content = xml_util_get_child_element_content2 (xml_node, "totalDeletedChildCount"); return content != NULL; } diff --git a/libgupnp-av/gupnp-didl-lite-item.c b/libgupnp-av/gupnp-didl-lite-item.c index 3588052..3d6d4d0 100644 --- a/libgupnp-av/gupnp-didl-lite-item.c +++ b/libgupnp-av/gupnp-didl-lite-item.c @@ -254,7 +254,7 @@ gupnp_didl_lite_item_get_lifetime (GUPnPDIDLLiteItem *item) object = GUPNP_DIDL_LITE_OBJECT (item); node = gupnp_didl_lite_object_get_xml_node (object); - lifetime_str = xml_util_get_child_element_content (node, "lifetime"); + lifetime_str = xml_util_get_child_element_content2 (node, "lifetime"); lifetime = seconds_from_time (lifetime_str); return lifetime; diff --git a/libgupnp-av/gupnp-didl-lite-object.c b/libgupnp-av/gupnp-didl-lite-object.c index 68156dc..cab2359 100644 --- a/libgupnp-av/gupnp-didl-lite-object.c +++ b/libgupnp-av/gupnp-didl-lite-object.c @@ -1065,7 +1065,7 @@ gupnp_didl_lite_object_get_upnp_class (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "class"); } @@ -1211,7 +1211,7 @@ gupnp_didl_lite_object_get_title (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "title"); } @@ -1228,7 +1228,7 @@ gupnp_didl_lite_object_get_creator (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "creator"); } @@ -1266,7 +1266,7 @@ gupnp_didl_lite_object_get_artist (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "artist"); } @@ -1303,7 +1303,7 @@ gupnp_didl_lite_object_get_author (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "author"); } @@ -1377,7 +1377,7 @@ gupnp_didl_lite_object_get_genre (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "genre"); } @@ -1394,7 +1394,7 @@ gupnp_didl_lite_object_get_write_status (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "writeStatus"); } @@ -1411,7 +1411,7 @@ gupnp_didl_lite_object_get_album (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "album"); } @@ -1428,7 +1428,7 @@ gupnp_didl_lite_object_get_album_art (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "albumArtURI"); } @@ -1445,7 +1445,7 @@ gupnp_didl_lite_object_get_description (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "description"); } @@ -1462,7 +1462,7 @@ gupnp_didl_lite_object_get_date (GUPnPDIDLLiteObject *object) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), NULL); - return xml_util_get_child_element_content (object->priv->xml_node, + return xml_util_get_child_element_content2 (object->priv->xml_node, "date"); } @@ -1481,7 +1481,7 @@ gupnp_didl_lite_object_get_track_number (GUPnPDIDLLiteObject *object) g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), -1); - str = xml_util_get_child_element_content (object->priv->xml_node, + str = xml_util_get_child_element_content2 (object->priv->xml_node, "originalTrackNumber"); if (str == NULL) return -1; @@ -1552,7 +1552,7 @@ gupnp_didl_lite_object_update_id_is_set (GUPnPDIDLLiteObject *object) g_return_val_if_fail (object != NULL, FALSE); g_return_val_if_fail (GUPNP_IS_DIDL_LITE_OBJECT (object), FALSE); - content = xml_util_get_child_element_content (object->priv->xml_node, + content = xml_util_get_child_element_content2 (object->priv->xml_node, "objectUpdateID"); return content != NULL; } diff --git a/libgupnp-av/gupnp-didl-lite-parser.c b/libgupnp-av/gupnp-didl-lite-parser.c index 59255ef..93d03c0 100644 --- a/libgupnp-av/gupnp-didl-lite-parser.c +++ b/libgupnp-av/gupnp-didl-lite-parser.c @@ -52,7 +52,7 @@ verify_didl_attributes (xmlNode *node) { const char *content; - content = xml_util_get_child_element_content (node, "date"); + content = xml_util_get_child_element_content2 (node, "date"); if (content) { /* try to roughly verify the passed date with ^\d{4}-\d{2}-\d{2} */ char *ptr = (char *) content; @@ -251,7 +251,7 @@ gupnp_didl_lite_parser_parse_didl_recursive (GUPnPDIDLLiteParser *parser, } /* Get a pointer to root element */ - element = xml_util_get_element ((xmlNode *) doc, + element = xml_util_get_element2 ((xmlNode *) doc, "DIDL-Lite", NULL); if (element == NULL) { diff --git a/libgupnp-av/gupnp-didl-lite-writer.c b/libgupnp-av/gupnp-didl-lite-writer.c index fb37c0b..e61739a 100644 --- a/libgupnp-av/gupnp-didl-lite-writer.c +++ b/libgupnp-av/gupnp-didl-lite-writer.c @@ -223,7 +223,7 @@ filter_node (xmlNode *node, if (strcmp ((const char *) node->name, "container") == 0) { is_container = TRUE; - container_class = xml_util_get_child_element_content (node, + container_class = xml_util_get_child_element_content2 (node, "class"); } diff --git a/libgupnp-av/gupnp-feature-list-parser.c b/libgupnp-av/gupnp-feature-list-parser.c index 85fb232..dcaad6b 100644 --- a/libgupnp-av/gupnp-feature-list-parser.c +++ b/libgupnp-av/gupnp-feature-list-parser.c @@ -138,7 +138,7 @@ gupnp_feature_list_parser_parse_text } /* Get a pointer to root element */ - element = xml_util_get_element ((xmlNode *) doc, "Features", NULL); + element = xml_util_get_element2 ((xmlNode *) doc, "Features", NULL); if (element == NULL) { g_set_error (error, G_MARKUP_ERROR, diff --git a/libgupnp-av/gupnp-last-change-parser.c b/libgupnp-av/gupnp-last-change-parser.c index a98aecf..7078713 100644 --- a/libgupnp-av/gupnp-last-change-parser.c +++ b/libgupnp-av/gupnp-last-change-parser.c @@ -75,7 +75,7 @@ read_state_variable (const char *variable_name, xmlNode *variable_node; const char *val_str; - variable_node = xml_util_get_element (instance_node, + variable_node = xml_util_get_element2 (instance_node, variable_name, NULL); if (!variable_node) diff --git a/libgupnp-av/xml-util.c b/libgupnp-av/xml-util.c index da718b2..8c937e0 100644 --- a/libgupnp-av/xml-util.c +++ b/libgupnp-av/xml-util.c @@ -81,7 +81,7 @@ xml_doc_unref (GUPnPAVXMLDoc *doc) } xmlNode * -xml_util_get_element (xmlNode *node, +xml_util_get_element2 (xmlNode *node, ...) { va_list var_args; @@ -130,13 +130,13 @@ xml_util_get_child_elements_by_name (xmlNode *node, const char *name) } const char * -xml_util_get_child_element_content (xmlNode *node, +xml_util_get_child_element_content2 (xmlNode *node, const char *child_name) { xmlNode *child_node; const char *content; - child_node = xml_util_get_element (node, child_name, NULL); + child_node = xml_util_get_element2 (node, child_name, NULL); if (!child_node || !(child_node->children)) return NULL; @@ -154,7 +154,7 @@ xml_util_get_uint_child_element (xmlNode *node, { const char *content; - content = xml_util_get_child_element_content (node, child_name); + content = xml_util_get_child_element_content2 (node, child_name); if (!content) return default_value; @@ -168,7 +168,7 @@ xml_util_get_uint64_child_element (xmlNode *node, { const char *content; - content = xml_util_get_child_element_content (node, child_name); + content = xml_util_get_child_element_content2 (node, child_name); if (!content) return default_value; @@ -281,7 +281,7 @@ xml_util_set_child (xmlNode *parent_node, xmlNode *node; xmlChar *escaped; - node = xml_util_get_element (parent_node, name, NULL); + node = xml_util_get_element2 (parent_node, name, NULL); if (node == NULL) { xmlNsPtr ns_ptr = NULL; @@ -305,7 +305,7 @@ xml_util_unset_child (xmlNode *parent_node, { xmlNode *node; - node = xml_util_get_element (parent_node, name, NULL); + node = xml_util_get_element2 (parent_node, name, NULL); if (node != NULL) { xmlUnlinkNode (node); xmlFreeNode (node); @@ -342,7 +342,7 @@ xml_util_get_child_string (xmlNode *parent_node, char *ret; xmlNode *node; - node = xml_util_get_element (parent_node, name, NULL); + node = xml_util_get_element2 (parent_node, name, NULL); if (!node) return NULL; diff --git a/libgupnp-av/xml-util.h b/libgupnp-av/xml-util.h index 9ae5b19..5ff2020 100644 --- a/libgupnp-av/xml-util.h +++ b/libgupnp-av/xml-util.h @@ -63,7 +63,7 @@ xml_doc_get_type (void) G_GNUC_CONST; /* Misc utilities for inspecting xmlNodes */ G_GNUC_INTERNAL xmlNode * -xml_util_get_element (xmlNode *node, +xml_util_get_element2 (xmlNode *node, ...) G_GNUC_NULL_TERMINATED; G_GNUC_INTERNAL GList * @@ -71,7 +71,7 @@ xml_util_get_child_elements_by_name (xmlNode *node, const char *name); G_GNUC_INTERNAL const char * -xml_util_get_child_element_content (xmlNode *node, +xml_util_get_child_element_content2 (xmlNode *node, const char *child_name); G_GNUC_INTERNAL guint -- 2.14.1