diff options
Diffstat (limited to 'src/core/text.c')
-rw-r--r-- | src/core/text.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/core/text.c b/src/core/text.c index 94718a2..e84972a 100644 --- a/src/core/text.c +++ b/src/core/text.c @@ -473,8 +473,10 @@ dom_exception walk_logic_adjacent_text(dom_text *text, /* Firstly, we look our left */ err = walk_logic_adjacent_text_in_order(left, opt, LEFT, ret, &cont); if (err != DOM_NO_ERR) { - dom_string_unref(*ret); - *ret = NULL; + if (opt == COLLECT) { + dom_string_unref(*ret); + *ret = NULL; + } return err; } @@ -508,8 +510,10 @@ dom_exception walk_logic_adjacent_text(dom_text *text, /* Now, look right */ err = walk_logic_adjacent_text_in_order(right, opt, RIGHT, ret, &cont); if (err != DOM_NO_ERR) { - dom_string_unref(*ret); - *ret = NULL; + if (opt == COLLECT) { + dom_string_unref(*ret); + *ret = NULL; + } return err; } |