diff options
Diffstat (limited to 'variable.c')
-rw-r--r-- | variable.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/variable.c b/variable.c index 8639f8b378..6c0ff1b3f5 100644 --- a/variable.c +++ b/variable.c @@ -939,8 +939,8 @@ ivar_get(VALUE obj, ID id, int warn) switch (TYPE(obj)) { case T_OBJECT: - len = ROBJECT_LEN(obj); - ptr = ROBJECT_PTR(obj); + len = ROBJECT_NUMIV(obj); + ptr = ROBJECT_IVPTR(obj); iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj); if (!iv_index_tbl) break; if (!st_lookup(iv_index_tbl, id, &index)) break; @@ -1004,9 +1004,9 @@ rb_ivar_set(VALUE obj, ID id, VALUE val) st_add_direct(iv_index_tbl, id, index); ivar_extended = 1; } - len = ROBJECT_LEN(obj); + len = ROBJECT_NUMIV(obj); if (len <= index) { - VALUE *ptr = ROBJECT_PTR(obj); + VALUE *ptr = ROBJECT_IVPTR(obj); if (index < ROBJECT_EMBED_LEN_MAX) { RBASIC(obj)->flags |= ROBJECT_EMBED; ptr = ROBJECT(obj)->as.ary; @@ -1025,19 +1025,19 @@ rb_ivar_set(VALUE obj, ID id, VALUE val) newptr = ALLOC_N(VALUE, newsize); MEMCPY(newptr, ptr, VALUE, len); RBASIC(obj)->flags &= ~ROBJECT_EMBED; - ROBJECT(obj)->as.heap.ptr = newptr; + ROBJECT(obj)->as.heap.ivptr = newptr; } else { - REALLOC_N(ROBJECT(obj)->as.heap.ptr, VALUE, newsize); - newptr = ROBJECT(obj)->as.heap.ptr; + REALLOC_N(ROBJECT(obj)->as.heap.ivptr, VALUE, newsize); + newptr = ROBJECT(obj)->as.heap.ivptr; } for (; len < newsize; len++) newptr[len] = Qundef; - ROBJECT(obj)->as.heap.len = newsize; + ROBJECT(obj)->as.heap.numiv = newsize; ROBJECT(obj)->as.heap.iv_index_tbl = iv_index_tbl; } } - ROBJECT_PTR(obj)[index] = val; + ROBJECT_IVPTR(obj)[index] = val; break; case T_CLASS: case T_MODULE: @@ -1062,8 +1062,8 @@ rb_ivar_defined(VALUE obj, ID id) iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj); if (!iv_index_tbl) break; if (!st_lookup(iv_index_tbl, id, &index)) break; - if (ROBJECT_LEN(obj) <= index) break; - val = ROBJECT_PTR(obj)[index]; + if (ROBJECT_NUMIV(obj) <= index) break; + val = ROBJECT_IVPTR(obj)[index]; if (val != Qundef) return Qtrue; break; @@ -1089,8 +1089,8 @@ struct obj_ivar_tag { static int obj_ivar_i(ID key, VALUE index, struct obj_ivar_tag *data) { - if (index < ROBJECT_LEN(data->obj)) { - VALUE val = ROBJECT_PTR(data->obj)[index]; + if (index < ROBJECT_NUMIV(data->obj)) { + VALUE val = ROBJECT_IVPTR(data->obj)[index]; if (val != Qundef) { return (data->func)(key, val, data->arg); } @@ -1218,10 +1218,10 @@ rb_obj_remove_instance_variable(VALUE obj, VALUE name) iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj); if (!iv_index_tbl) break; if (!st_lookup(iv_index_tbl, id, &index)) break; - if (ROBJECT_LEN(obj) <= index) break; - val = ROBJECT_PTR(obj)[index]; + if (ROBJECT_NUMIV(obj) <= index) break; + val = ROBJECT_IVPTR(obj)[index]; if (val != Qundef) { - ROBJECT_PTR(obj)[index] = Qundef; + ROBJECT_IVPTR(obj)[index] = Qundef; return val; } break; |