diff options
author | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-06-14 04:19:23 +0000 |
---|---|---|
committer | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-06-14 04:19:23 +0000 |
commit | b810b14ed3df351601e0bcf85e4dcb5c335bede7 (patch) | |
tree | 89f99e2090247d186471b5203d6c1189efe1c7e6 /re.c | |
parent | 94c7a0fcb974888d61be1fe2ec7e19897f033d25 (diff) |
2000-06-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 're.c')
-rw-r--r-- | re.c | 31 |
1 files changed, 20 insertions, 11 deletions
@@ -197,6 +197,15 @@ rb_mbclen2(c, re) return len; } +static void +rb_reg_check(re) + VALUE re; +{ + if (!RREGEXP(re)->ptr || !RREGEXP(re)->str) { + rb_raise(rb_eTypeError, "uninitialized Regexp"); + } +} + extern int ruby_in_compile; static void @@ -472,8 +481,8 @@ static int may_need_recompile; static VALUE matchcache; static void -rb_reg_prepare_re(reg) - VALUE reg; +rb_reg_prepare_re(re) + VALUE re; { int need_recompile = 0; @@ -493,22 +502,22 @@ rb_reg_prepare_re(reg) need_recompile = 1; } - if (!FL_TEST(reg, KCODE_FIXED) && - (RBASIC(reg)->flags & KCODE_MASK) != reg_kcode) { + if (!FL_TEST(re, KCODE_FIXED) && + (RBASIC(re)->flags & KCODE_MASK) != reg_kcode) { need_recompile = 1; - RBASIC(reg)->flags &= ~KCODE_MASK; - RBASIC(reg)->flags |= reg_kcode; + RBASIC(re)->flags &= ~KCODE_MASK; + RBASIC(re)->flags |= reg_kcode; } if (need_recompile) { char *err; - if (FL_TEST(reg, KCODE_FIXED)) - kcode_set_option(reg); - RREGEXP(reg)->ptr->fastmap_accurate = 0; - err = re_compile_pattern(RREGEXP(reg)->str, RREGEXP(reg)->len, RREGEXP(reg)->ptr); + if (FL_TEST(re, KCODE_FIXED)) + kcode_set_option(re); + RREGEXP(re)->ptr->fastmap_accurate = 0; + err = re_compile_pattern(RREGEXP(re)->str, RREGEXP(re)->len, RREGEXP(re)->ptr); if (err != NULL) { - rb_reg_raise(RREGEXP(reg)->str, RREGEXP(reg)->len, err, reg); + rb_reg_raise(RREGEXP(re)->str, RREGEXP(re)->len, err, re); } } } |