diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cr-om-parser.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/cr-om-parser.c b/src/cr-om-parser.c index a62e98d..ea622e3 100644 --- a/src/cr-om-parser.c +++ b/src/cr-om-parser.c @@ -142,7 +142,7 @@ static enum CRStatus cr_om_parser_init_default_sac_handler (CROMParser * a_this) { CRDocHandler *sac_handler = NULL; - gboolean free_hdlr_if_error = FALSE; + gboolean created_handler = FALSE; enum CRStatus status = CR_OK; g_return_val_if_fail (a_this && PRIVATE (a_this) @@ -155,7 +155,7 @@ cr_om_parser_init_default_sac_handler (CROMParser * a_this) if (!sac_handler) { sac_handler = cr_doc_handler_new (); - free_hdlr_if_error = TRUE; + created_handler = TRUE; } /* @@ -177,15 +177,10 @@ cr_om_parser_init_default_sac_handler (CROMParser * a_this) sac_handler->end_media = end_media; sac_handler->import_style = import_style; - status = cr_parser_set_sac_handler (PRIVATE (a_this)->parser, - sac_handler); - if (status == CR_OK) { - return CR_OK; - } - - if (sac_handler && free_hdlr_if_error == TRUE) { - cr_doc_handler_destroy (sac_handler); - sac_handler = NULL; + if (created_handler) { + status = cr_parser_set_sac_handler (PRIVATE (a_this)->parser, + sac_handler); + cr_doc_handler_unref (sac_handler); } return status; |