[libgdata/gxml] * oh dear, get_attribute () returns when the attribute is not set, per spec. libxml2 returned NULL.



commit 79e8f65a113fb2913324957428121bd9cbc51199
Author: Richard Schwarting <aquarichy gmail com>
Date:   Wed Sep 21 11:41:44 2011 -0400

    * oh dear, get_attribute () returns when the attribute is not set, per spec. libxml2 returned NULL. Checks for NULL using get_attribute fail now. Need to use get_attribute_node ALL over the place now.

 gdata/atom/gdata-link.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/gdata/atom/gdata-link.c b/gdata/atom/gdata-link.c
index 4504656..8f6ba46 100644
--- a/gdata/atom/gdata-link.c
+++ b/gdata/atom/gdata-link.c
@@ -290,15 +290,15 @@ pre_parse_xml (GDataParsable *parsable, GXmlDomDocument *doc, GXmlDomXNode *root
 
 	/* href */
 	uri = gxml_dom_element_get_attribute (root_elem, "href");
-	if (uri == NULL || *uri == '\0') {
-		g_free (uri);
+	if (gxml_dom_element_get_attribute_node (root_elem, "href") == NULL || *uri == '\0') {
+		g_free (uri); // TODO:GXML: do we want to free these?  I think not.
 		return gdata_parser_error_required_property_missing (root_node, "href", error);
 	}
 	self->priv->uri = uri;
 
 	/* rel */
 	relation_type = gxml_dom_element_get_attribute (root_elem, "rel");
-	if (relation_type != NULL && *relation_type == '\0') {
+	if (gxml_dom_element_get_attribute_node (root_elem, "rel") != NULL && *relation_type == '\0') {
 		g_free (relation_type);
 		return gdata_parser_error_required_property_missing (root_node, "rel", error);
 	}
@@ -308,7 +308,7 @@ pre_parse_xml (GDataParsable *parsable, GXmlDomDocument *doc, GXmlDomXNode *root
 
 	/* type */
 	content_type = gxml_dom_element_get_attribute (root_elem, "type");
-	if (content_type != NULL && *content_type == '\0') {
+	if (gxml_dom_element_get_attribute_node (root_elem, "type") != NULL && *content_type == '\0') {
 		g_free (content_type);
 		return gdata_parser_error_required_property_missing (root_node, "type", error);
 	}
@@ -316,7 +316,7 @@ pre_parse_xml (GDataParsable *parsable, GXmlDomDocument *doc, GXmlDomXNode *root
 
 	/* hreflang */
 	language = gxml_dom_element_get_attribute (root_elem, "hreflang");
-	if (language != NULL && *language == '\0') {
+	if (gxml_dom_element_get_attribute_node (root_elem, "hreflang") != NULL && *language == '\0') {
 		g_free (language);
 		return gdata_parser_error_required_property_missing (root_node, "hreflang", error);
 	}
@@ -327,7 +327,7 @@ pre_parse_xml (GDataParsable *parsable, GXmlDomDocument *doc, GXmlDomXNode *root
 
 	/* length */
 	length = gxml_dom_element_get_attribute (root_elem, "length");
-	if (length == NULL)
+	if (gxml_dom_element_get_attribute_node (root_elem, "length") == NULL)
 		self->priv->length = -1;
 	else
 		self->priv->length = strtoul (length, NULL, 10);



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