aboutsummaryrefslogtreecommitdiffstats
path: root/ruby.h
diff options
context:
space:
mode:
Diffstat (limited to 'ruby.h')
-rw-r--r--ruby.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/ruby.h b/ruby.h
index 3f773ed82b..b0a0e3e7b9 100644
--- a/ruby.h
+++ b/ruby.h
@@ -94,15 +94,18 @@ extern "C" {
typedef unsigned long VALUE;
typedef unsigned long ID;
# define SIGNED_VALUE long
+# define SIZEOF_VALUE SIZEOF_LONG
#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP
typedef unsigned LONG_LONG VALUE;
typedef unsigned LONG_LONG ID;
# define SIGNED_VALUE LONG_LONG
# define LONG_LONG_VALUE 1
+# define SIZEOF_VALUE SIZEOF_LONG_LONG
#else
# error ---->> ruby requires sizeof(void*) == sizeof(long) to be compiled. <<----
#endif
+
#ifdef __STDC__
# include <limits.h>
#else
@@ -273,8 +276,8 @@ RUBY_EXTERN int ruby_safe_level;
void rb_set_safe_level(int);
void rb_secure_update(VALUE);
-long rb_num2long(VALUE);
-unsigned long rb_num2ulong(VALUE);
+SIGNED_VALUE rb_num2long(VALUE);
+VALUE rb_num2ulong(VALUE);
#define NUM2LONG(x) (FIXNUM_P(x)?FIX2LONG(x):rb_num2long((VALUE)x))
#define NUM2ULONG(x) rb_num2ulong((VALUE)x)
#if SIZEOF_INT < SIZEOF_LONG
@@ -336,7 +339,7 @@ VALUE rb_newobj(void);
} while (0)
struct RBasic {
- unsigned long flags;
+ VALUE flags;
VALUE klass;
};