Use RB_SPECIAL_CONST_P instead of rb_special_const_p
rb_special_const_p returns a VALUE (Qtrue or Qfalse), so we shouldn't assume that Qfalse is 0. We should instead use RB_SPECIAL_CONST_P.
This commit is contained in:
parent
95e55e9ae4
commit
e8e2415bb3
2
gc.c
2
gc.c
@ -4398,7 +4398,7 @@ is_live_object(rb_objspace_t *objspace, VALUE ptr)
|
|||||||
static inline int
|
static inline int
|
||||||
is_markable_object(VALUE obj)
|
is_markable_object(VALUE obj)
|
||||||
{
|
{
|
||||||
if (rb_special_const_p(obj)) return FALSE; /* special const is not markable */
|
if (RB_SPECIAL_CONST_P(obj)) return FALSE; /* special const is not markable */
|
||||||
check_rvalue_consistency(obj);
|
check_rvalue_consistency(obj);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -1889,7 +1889,7 @@ r_object_for(struct load_arg *arg, bool partial, int *ivp, VALUE extmod, int typ
|
|||||||
goto type_hash;
|
goto type_hash;
|
||||||
}
|
}
|
||||||
v = r_object_for(arg, partial, 0, extmod, type);
|
v = r_object_for(arg, partial, 0, extmod, type);
|
||||||
if (rb_special_const_p(v) || RB_TYPE_P(v, T_OBJECT) || RB_TYPE_P(v, T_CLASS)) {
|
if (RB_SPECIAL_CONST_P(v) || RB_TYPE_P(v, T_OBJECT) || RB_TYPE_P(v, T_CLASS)) {
|
||||||
goto format_error;
|
goto format_error;
|
||||||
}
|
}
|
||||||
if (RB_TYPE_P(v, T_MODULE) || !RTEST(rb_class_inherited_p(c, RBASIC(v)->klass))) {
|
if (RB_TYPE_P(v, T_MODULE) || !RTEST(rb_class_inherited_p(c, RBASIC(v)->klass))) {
|
||||||
|
2
vm.c
2
vm.c
@ -2922,7 +2922,7 @@ rb_vm_each_stack_value(void *ptr, void (*cb)(VALUE, void*), void *ctx)
|
|||||||
VALUE *p = ec->vm_stack;
|
VALUE *p = ec->vm_stack;
|
||||||
VALUE *sp = ec->cfp->sp;
|
VALUE *sp = ec->cfp->sp;
|
||||||
while (p < sp) {
|
while (p < sp) {
|
||||||
if (!rb_special_const_p(*p)) {
|
if (!RB_SPECIAL_CONST_P(*p)) {
|
||||||
cb(*p, ctx);
|
cb(*p, ctx);
|
||||||
}
|
}
|
||||||
p++;
|
p++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user