Enabled g_mem_set_vtable through the configure option --with-overridable-allocators...
[mono.git] / eglib / src / gmarkup.c
index eb4b511d0eb7b26c9e56054e3dd358b8ef8df347..4e6c6641fef542ac4fb758a51d27281baf556340 100644 (file)
@@ -276,7 +276,7 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
 
                switch (context->state){
                case START:
-                       if (c == ' ' || c == '\t' || c == '\f' || c == '\n')
+                       if (c == ' ' || c == '\t' || c == '\f' || c == '\n' || (c & 0x80))
                                continue;
                        if (c == '<'){
                                if (p+1 < end && p [1] == '?'){
@@ -367,7 +367,7 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
                                if (context->parser.end_element != NULL &&  context->state == START_ELEMENT){
                                        context->parser.end_element (context, ename, context->user_data, error);
                                        if (error != NULL && *error != NULL){
-                                               free (ename);
+                                               g_free (ename);
                                                goto fail;
                                        }
                                }
@@ -404,7 +404,7 @@ g_markup_parse_context_parse (GMarkupParseContext *context,
                        break;
                        
                case FLUSH_TEXT:
-                       if (context->parser.text != NULL){
+                       if (context->parser.text != NULL && context->text != NULL){
                                context->parser.text (context, context->text->str, context->text->len,
                                                      context->user_data, error);
                                if (error != NULL && *error != NULL)