[lasem] [Mathml] Fix can_append_child for underover and script elements.



commit f7a7109b37e45c31a69e56262e876ed0f118fe29
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Mon Jan 11 22:37:01 2010 +0100

    [Mathml] Fix can_append_child for underover and script elements.
    
    Use the right LSM_IS macro. We can now safely remove the parent node type
    test in the DOM parser.

 src/lsmdomparser.c              |   10 ++++++----
 src/lsmmathmlscriptelement.c    |    2 +-
 src/lsmmathmlunderoverelement.c |    2 +-
 3 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/src/lsmdomparser.c b/src/lsmdomparser.c
index c7e0b28..ab312bb 100644
--- a/src/lsmdomparser.c
+++ b/src/lsmdomparser.c
@@ -146,16 +146,18 @@ lsm_dom_parser_characters (void *user_data, const xmlChar *ch, int len)
 {
 	LsmDomSaxParserState *state = user_data;
 
-	if ((LSM_IS_MATHML_PRESENTATION_TOKEN (state->current_node) ||
-	     LSM_IS_SVG_TEXT_ELEMENT (state->current_node)) &&
-	    !state->is_error) {
+	if (!state->is_error) {
 		LsmDomNode *node;
 		char *text;
 
 		text = g_strndup ((char *) ch, len);
 		node = LSM_DOM_NODE (lsm_dom_document_create_text_node (LSM_DOM_DOCUMENT (state->document), text));
 
-		lsm_dom_node_append_child (state->current_node, node);
+		if (lsm_dom_node_append_child (state->current_node, node) == NULL) {
+			if (node != NULL)
+				g_object_unref (node);
+		}
+
 		g_free (text);
 	}
 }
diff --git a/src/lsmmathmlscriptelement.c b/src/lsmmathmlscriptelement.c
index f4a7e8b..4484a75 100644
--- a/src/lsmmathmlscriptelement.c
+++ b/src/lsmmathmlscriptelement.c
@@ -48,7 +48,7 @@ lsm_mathml_script_element_can_append_child (LsmDomNode *self, LsmDomNode *child)
 {
 	LsmMathmlScriptElement *script = LSM_MATHML_SCRIPT_ELEMENT (self);
 
-	if (!LSM_MATHML_ELEMENT (child))
+	if (!LSM_IS_MATHML_ELEMENT (child))
 		return FALSE;
 
 	if (self->first_child == NULL ||
diff --git a/src/lsmmathmlunderoverelement.c b/src/lsmmathmlunderoverelement.c
index e2f4ab6..dad8805 100644
--- a/src/lsmmathmlunderoverelement.c
+++ b/src/lsmmathmlunderoverelement.c
@@ -51,7 +51,7 @@ lsm_mathml_under_over_element_can_append_child (LsmDomNode *self, LsmDomNode *ch
 {
 	LsmMathmlUnderOverElement *under_over = LSM_MATHML_UNDER_OVER_ELEMENT (self);
 
-	if (!LSM_MATHML_ELEMENT (child))
+	if (!LSM_IS_MATHML_ELEMENT (child))
 		return FALSE;
 
 	if (self->first_child == NULL ||



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