aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-20 04:18:49 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-20 04:18:49 +0000
commitf36315a519f8ca99c873946eb62b90417ffda260 (patch)
tree89cc5ca4fdd92a698a6ec95f89e348ef6cb3959d
parentfcf080151880aad6088e6c8bf148f9c0df25925d (diff)
downloadruby-f36315a519f8ca99c873946eb62b90417ffda260.tar.gz
re_pattern_buffer: shrink from 464 to 448 bytes on 64-bit
* include/ruby/oniguruma.h (struct re_pattern_buffer): shrink to 448 bytes from 464 bytes on 64-bit. This breaks the ABI. [Feature #10034] Reducing struct re_pattern_buffer from 464 to 448 bytes allows it to fit into neatly into seven 64-byte cache lines on x86-64 systems. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--include/ruby/oniguruma.h6
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3c6db2e142..375a945adc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sun Jul 20 12:36:46 2014 Eric Wong <e@80x24.org>
+
+ * include/ruby/oniguruma.h (struct re_pattern_buffer): shrink to 448
+ bytes from 464 bytes on 64-bit. This breaks the ABI.
+ [Feature #10034]
+
Sun Jul 20 01:06:06 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
* ext/openssl/ossl.c: use encryptor instead of encrypter in doc.
diff --git a/include/ruby/oniguruma.h b/include/ruby/oniguruma.h
index 10217fdf0e..acb7365a88 100644
--- a/include/ruby/oniguruma.h
+++ b/include/ruby/oniguruma.h
@@ -674,13 +674,15 @@ typedef struct re_pattern_buffer {
unsigned int bt_mem_end; /* need backtrack flag */
int stack_pop_level;
int repeat_range_alloc;
+
+ OnigOptionType options;
+
OnigRepeatRange* repeat_range;
OnigEncoding enc;
- OnigOptionType options;
const OnigSyntaxType* syntax;
- OnigCaseFoldType case_fold_flag;
void* name_table;
+ OnigCaseFoldType case_fold_flag;
/* optimization info (string search, char-map and anchors) */
int optimize; /* optimize flag */