diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-21 10:53:06 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-21 10:53:06 +0000 |
commit | b2cc0976a7e167f47d3f71fb637af699950f15f9 (patch) | |
tree | 82ec93041977a89596469e2b081256e86138a34c /regparse.c | |
parent | 51f41bb843845dee4b9ada16a8100a3f558d70cd (diff) | |
download | ruby-b2cc0976a7e167f47d3f71fb637af699950f15f9.tar.gz |
* regcomp.c: Merge Onigmo 3d855b30d574536d3ae600260208c6624ae4791c.
[Bug#6143] [Bug#6144] [Bug#6145]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regparse.c')
-rw-r--r-- | regparse.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/regparse.c b/regparse.c index f82db81960..39de2359f8 100644 --- a/regparse.c +++ b/regparse.c @@ -5015,6 +5015,8 @@ parse_enclose(Node** np, OnigToken* tok, int term, UChar** src, UChar* end, num = backs[0]; /* XXX: use left most named group as Perl */ } #endif + else + return ONIGERR_INVALID_CONDITION_PATTERN; *np = node_new_enclose(ENCLOSE_CONDITION); CHECK_NULL_RETURN_MEMERR(*np); NENCLOSE(*np)->regnum = num; @@ -5975,7 +5977,8 @@ parse_exp(Node** np, OnigToken* tok, int term, *np = node_new_cclass(); CHECK_NULL_RETURN_MEMERR(*np); cc = NCCLASS(*np); - add_ctype_to_cc(cc, tok->u.prop.ctype, 0, 0, env); + r = add_ctype_to_cc(cc, tok->u.prop.ctype, 0, 0, env); + if (r != 0) return r; if (tok->u.prop.not != 0) NCCLASS_SET_NOT(cc); #ifdef USE_SHARED_CCLASS_TABLE } @@ -6005,6 +6008,7 @@ parse_exp(Node** np, OnigToken* tok, int term, cc = NCCLASS(*np); if (is_onechar_cclass(cc, &code)) { + onig_node_free(*np); *np = node_new_empty(); CHECK_NULL_RETURN_MEMERR(*np); r = node_str_cat_codepoint(*np, env->enc, code); |