From 8c5f9ef2eab6fe7e9f0531d0c670d053616d69be Mon Sep 17 00:00:00 2001 From: kosako Date: Mon, 15 May 2006 12:39:25 +0000 Subject: don't use onig_recompile() git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ re.c | 18 +++++++++++------- version.h | 6 +++--- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9d1c12f0aa..246e8b3ca3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon May 15 21:37:12 2006 K.Kosako + + * re.c (rb_reg_prepare_re): don't use onig_recompile(). + Sat May 13 16:14:05 2006 Tanaka Akira * lib/pp.rb (PP.mcall): new method. diff --git a/re.c b/re.c index e1ca4a00c7..08df5b38f3 100644 --- a/re.c +++ b/re.c @@ -906,7 +906,7 @@ rb_reg_prepare_re(VALUE re) char err[ONIG_MAX_ERROR_MESSAGE_LEN]; int r; OnigErrorInfo einfo; - regex_t *reg; + regex_t *reg, *reg2; UChar *pattern; if (FL_TEST(re, KCODE_FIXED)) @@ -914,14 +914,18 @@ rb_reg_prepare_re(VALUE re) rb_reg_check(re); reg = RREGEXP(re)->ptr; pattern = ((UChar*)RREGEXP(re)->str); - r = onig_recompile(reg, pattern, pattern + RREGEXP(re)->len, - reg->options, onigenc_get_default_encoding(), - OnigDefaultSyntax, &einfo); - if (r != 0) { - (void )onig_error_code_to_str((UChar*)err, r, &einfo); - rb_reg_raise(pattern, RREGEXP(re)->len, err, re, Qfalse); + r = onig_new(®2, (UChar* )pattern, + (UChar* )(pattern + RREGEXP(re)->len), + reg->options, onigenc_get_default_encoding(), + OnigDefaultSyntax, &einfo); + if (r) { + onig_error_code_to_str((UChar*)err, r, &einfo); + rb_reg_raise((char* )pattern, RREGEXP(re)->len, err, re, Qfalse); } + + RREGEXP(re)->ptr = reg2; + onig_free(reg); } } diff --git a/version.h b/version.h index 6a71869a73..315780b2e8 100644 --- a/version.h +++ b/version.h @@ -1,14 +1,14 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2006-05-13" +#define RUBY_RELEASE_DATE "2006-05-15" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20060513 +#define RUBY_RELEASE_CODE 20060515 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2006 #define RUBY_RELEASE_MONTH 5 -#define RUBY_RELEASE_DAY 13 +#define RUBY_RELEASE_DAY 15 RUBY_EXTERN const char ruby_version[]; RUBY_EXTERN const char ruby_release_date[]; -- cgit v1.2.3