diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-03-22 08:59:26 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-03-22 08:59:26 +0000 |
commit | 285cb99ba493a113098b78c9989cba5a870f2435 (patch) | |
tree | 8b65e3a45b97bc24a60d4e9cf41f74c0dd25f600 /marshal.c | |
parent | 22198c30b115dd69227dfa3a006c323576067fe8 (diff) |
* ruby.h: better inline function support.
* configure.in (NO_C_INLINE): check if inline is available for the
C compiler.
* marshal.c (r_object): len calculation patch was wrong for
machines SIZEOF_BDIGITS == SIZEOF_SHORT.
* gc.c: alloca prototype reorganized for C_ALLOCA machine.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'marshal.c')
-rw-r--r-- | marshal.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -824,7 +824,11 @@ r_object(arg) OBJSETUP(big, rb_cBignum, T_BIGNUM); big->sign = (r_byte(arg) == '+'); len = r_long(arg); +#if SIZEOF_BDIGITS == SIZEOF_SHORT + big->len = len; +#else big->len = (len + 1) * sizeof(short) / sizeof(BDIGIT); +#endif big->digits = digits = ALLOC_N(BDIGIT, big->len); while (len > 0) { #if SIZEOF_BDIGITS > SIZEOF_SHORT |