diff options
| author | kosako <kosako@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-10-29 10:55:27 +0000 |
|---|---|---|
| committer | kosako <kosako@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-10-29 10:55:27 +0000 |
| commit | 06cbe3e64f08028957d9b8a55ec8b8e273d3cfdc (patch) | |
| tree | b5f3e4fed3126a95151b254838652638b3aca326 /regexec.c | |
| parent | 20629f3da589d14ccc16917de19588a03f2e4c50 (diff) | |
| download | ruby-06cbe3e64f08028957d9b8a55ec8b8e273d3cfdc.tar.gz ruby-06cbe3e64f08028957d9b8a55ec8b8e273d3cfdc.tar.xz ruby-06cbe3e64f08028957d9b8a55ec8b8e273d3cfdc.zip | |
fix offset value in STATE_CHECK_BUFF_INIT()
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regexec.c')
| -rw-r--r-- | regexec.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -390,7 +390,8 @@ typedef struct { #define STATE_CHECK_BUFF_INIT(msa, str_len, offset, state_num) do { \ if ((state_num) > 0 && str_len >= STATE_CHECK_STRING_THRESHOLD_LEN) {\ - int size = ((int )((str_len) + 1) * (state_num) + 7) / 8;\ + unsigned int size = (unsigned int )(((str_len) + 1) * (state_num) + 7) >> 3;\ + offset = ((offset) * (state_num)) >> 3;\ if (size > 0 && offset < size && size < STATE_CHECK_BUFF_MAX_SIZE) {\ if (size >= STATE_CHECK_BUFF_MALLOC_THRESHOLD_SIZE) \ (msa).state_check_buff = (void* )xmalloc(size);\ |
