From cc88283badde1cac04463a990659aa33fb33ca79 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 30 Apr 2008 08:47:23 +0000 Subject: [PATCH] * re.c (rb_reg_search): use local variable. a patch from wanabe in [ruby-dev:34537]. [ruby-dev:34492] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ re.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 367fd7eb73..2f662fe943 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Apr 30 17:47:21 2008 Nobuyoshi Nakada + + * re.c (rb_reg_search): use local variable. a patch from wanabe + in [ruby-dev:34537]. [ruby-dev:34492] + Wed Apr 30 16:10:18 2008 Yusuke Endoh * eval_intern.h: speficy the values of the enumeration constants diff --git a/re.c b/re.c index ed8aa8c453..d6a4a55ca8 100644 --- a/re.c +++ b/re.c @@ -1255,7 +1255,7 @@ rb_reg_search(VALUE re, VALUE str, int pos, int reverse) { int result; VALUE match; - static struct re_registers regs; + struct re_registers regs; char *range = RSTRING_PTR(str); regex_t *reg0 = RREGEXP(re)->ptr, *reg; int busy = FL_TEST(re, REG_BUSY); @@ -1271,6 +1271,7 @@ rb_reg_search(VALUE re, VALUE str, int pos, int reverse) if (!reverse) { range += RSTRING_LEN(str); } + MEMZERO(®s, struct re_registers, 1); result = onig_search(reg, (UChar*)(RSTRING_PTR(str)), ((UChar*)(RSTRING_PTR(str)) + RSTRING_LEN(str)),