summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--include/ruby/ruby.h8
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index d6c6ed0830..7233bcc89c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Nov 24 00:44:30 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): define by macros
+ defined in defines.h, instead of complex and repeated expression.
+
Sat Nov 23 22:22:26 2013 Tanaka Akira <akr@fsij.org>
* include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): Limit the value to
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 35a647110a..66ef47c464 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -1069,9 +1069,11 @@ struct RStruct {
#define RBIGNUM_EMBED_LEN_NUMBITS 3
#ifndef RBIGNUM_EMBED_LEN_MAX
-# define RBIGNUM_EMBED_LEN_MAX \
- (((int)((sizeof(VALUE)*3)/sizeof(BDIGIT))) < (1 << RBIGNUM_EMBED_LEN_NUMBITS)-1 ? \
- ((int)((sizeof(VALUE)*3)/sizeof(BDIGIT))) : (1 << RBIGNUM_EMBED_LEN_NUMBITS)-1)
+# if (SIZEOF_VALUE*3/SIZEOF_BDIGITS) < (1 << RBIGNUM_EMBED_LEN_NUMBITS)-1
+# define RBIGNUM_EMBED_LEN_MAX (SIZEOF_VALUE*3/SIZEOF_BDIGITS)
+# else
+# define RBIGNUM_EMBED_LEN_MAX ((1 << RBIGNUM_EMBED_LEN_NUMBITS)-1)
+# endif
#endif
struct RBignum {
struct RBasic basic;