diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-05-29 13:56:38 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-05-29 13:56:38 +0000 |
commit | fecd08ab8697f0d85ebc450048e621c0f58078fc (patch) | |
tree | 4e0da0316287d9ad80ead49a42668b09a86bd27b | |
parent | 3733b0ac9685e6b97ff51041d30fd171d1e1542a (diff) | |
download | ruby-fecd08ab8697f0d85ebc450048e621c0f58078fc.tar.gz |
* regexec.c (match_at): make compilers optimize harder.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | regexec.c | 13 |
2 files changed, 11 insertions, 6 deletions
@@ -1,3 +1,7 @@ +Sun May 29 22:44:19 2016 NARUSE, Yui <naruse@ruby-lang.org> + + * regexec.c (match_at): make compilers optimize harder. + Sun May 29 12:08:42 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/-test-/auto_ext.rb (auto_ext): utitily method to create @@ -1561,9 +1561,6 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, mem_start_stk = (OnigStackIndex* )(repeat_stk + reg->num_repeat); mem_end_stk = mem_start_stk + (num_mem + 1); - for (i = 0; i <= num_mem; i++) { - mem_start_stk[i] = mem_end_stk[i] = INVALID_STACK_INDEX; - } #else /* USE_SUBEXP_CALL */ /* Stack #0 not is used. */ n = reg->num_repeat + reg->num_mem * 2; @@ -1579,10 +1576,14 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, mem_start_stk[1]..mem_start_stk[num_mem] */ mem_end_stk--; /* for index start from 1, mem_end_stk[1]..mem_end_stk[num_mem] */ - for (i = 1; i <= num_mem; i++) { - mem_start_stk[i] = mem_end_stk[i] = INVALID_STACK_INDEX; - } #endif /* USE_SUBEXP_CALL */ + { + OnigStackIndex *pp = mem_start_stk; + for (; pp < (repeat_stk + n); pp+=2) { + pp[0] = INVALID_STACK_INDEX; + pp[1] = INVALID_STACK_INDEX; + } + } #ifdef ONIG_DEBUG_MATCH fprintf(stderr, "match_at: str: %"PRIdPTR" (%p), end: %"PRIdPTR" (%p), start: %"PRIdPTR" (%p), sprev: %"PRIdPTR" (%p)\n", |