diff options
-rw-r--r-- | internal.h | 3 | ||||
-rw-r--r-- | vm.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/internal.h b/internal.h index 2b8176c28b..f21c1c40b5 100644 --- a/internal.h +++ b/internal.h @@ -252,10 +252,13 @@ struct rb_subclass_entry { #if defined(HAVE_LONG_LONG) typedef unsigned LONG_LONG rb_serial_t; +#define SERIALT2NUM ULL2NUM #elif defined(HAVE_UINT64_T) typedef uint64_t rb_serial_t; +#define SERIALT2NUM SIZET2NUM #else typedef unsigned long rb_serial_t; +#define SERIALT2NUM ULONG2NUM #endif struct rb_classext_struct { @@ -163,9 +163,9 @@ ruby_vm_stat(int argc, VALUE *argv, VALUE self) #define SET(name, attr) \ if (key == sym_##name) \ - return SIZET2NUM(attr); \ + return SERIALT2NUM(attr); \ else if (hash != Qnil) \ - rb_hash_aset(hash, sym_##name, SIZET2NUM(attr)); + rb_hash_aset(hash, sym_##name, SERIALT2NUM(attr)); SET(method_serial, ruby_vm_method_serial); SET(constant_serial, ruby_vm_constant_serial); |