Skip to content

Commit 57bc7be

Browse files
committed
Reduce diff to upstream in ruby.h
1 parent fc3e855 commit 57bc7be

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

lib/cext/include/ruby/ruby.h

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,6 @@ VALUE rb_id2sym(ID);
415415
#define ID2SYM(x) RB_ID2SYM(x)
416416
#define SYM2ID(x) RB_SYM2ID(x)
417417

418-
419418
#ifndef USE_FLONUM
420419
#if SIZEOF_VALUE >= SIZEOF_DOUBLE
421420
#define USE_FLONUM 1
@@ -479,8 +478,8 @@ enum ruby_special_consts {
479478
#define SYMBOL_FLAG RUBY_SYMBOL_FLAG
480479

481480
int RTEST(VALUE value);
482-
#define NIL_P RB_NIL_P
483481
int RB_NIL_P(VALUE value); /* Defined as a function in TruffleRuby. */
482+
#define NIL_P(v) RB_NIL_P(v)
484483

485484
#define CLASS_OF(v) rb_class_of((VALUE)(v))
486485

@@ -561,11 +560,22 @@ MUST_INLINE int RB_FLOAT_TYPE_P(VALUE obj);
561560

562561
bool RB_TYPE_P(VALUE value, int type);
563562

563+
#ifdef __GNUC__
564564
#define RB_GC_GUARD(v) \
565565
(*__extension__ ({ \
566-
volatile VALUE *rb_gc_guarded_ptr = rb_tr_gc_guard(&v); \
567-
rb_gc_guarded_ptr; \
566+
volatile VALUE *rb_gc_guarded_ptr = rb_tr_gc_guard(&v); \
567+
rb_gc_guarded_ptr; \
568568
}))
569+
#elif defined _MSC_VER
570+
#pragma optimize("", off)
571+
static inline volatile VALUE *rb_gc_guarded_ptr(volatile VALUE *ptr) {return ptr;}
572+
#pragma optimize("", on)
573+
#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr(&(v)))
574+
#else
575+
volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val);
576+
#define HAVE_RB_GC_GUARDED_PTR_VAL 1
577+
#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr_val(&(v),(v)))
578+
#endif
569579

570580
#ifdef __GNUC__
571581
#define RB_UNUSED_VAR(x) x __attribute__ ((unused))

0 commit comments

Comments
 (0)