diff options
Diffstat (limited to 'variable.c')
-rw-r--r-- | variable.c | 682 |
1 files changed, 341 insertions, 341 deletions
diff --git a/variable.c b/variable.c index 81258cb47b..a3512adc99 100644 --- a/variable.c +++ b/variable.c @@ -64,8 +64,8 @@ static st_table *generic_iv_tbl_; struct ivar_update { union { - st_table *iv_index_tbl; - struct gen_ivtbl *ivtbl; + st_table *iv_index_tbl; + struct gen_ivtbl *ivtbl; } u; st_data_t index; int iv_extended; @@ -147,14 +147,14 @@ make_temporary_path(VALUE obj, VALUE klass) VALUE path; switch (klass) { case Qnil: - path = rb_sprintf("#<Class:%p>", (void*)obj); - break; + path = rb_sprintf("#<Class:%p>", (void*)obj); + break; case Qfalse: - path = rb_sprintf("#<Module:%p>", (void*)obj); - break; + path = rb_sprintf("#<Module:%p>", (void*)obj); + break; default: - path = rb_sprintf("#<%"PRIsVALUE":%p>", klass, (void*)obj); - break; + path = rb_sprintf("#<%"PRIsVALUE":%p>", klass, (void*)obj); + break; } OBJ_FREEZE(path); return path; @@ -168,20 +168,20 @@ rb_tmp_class_path(VALUE klass, int *permanent, fallback_func fallback) VALUE path = classname(klass, permanent); if (!NIL_P(path)) { - return path; + return path; } else { - if (RB_TYPE_P(klass, T_MODULE)) { - if (rb_obj_class(klass) == rb_cModule) { - path = Qfalse; - } - else { - int perm; - path = rb_tmp_class_path(RBASIC(klass)->klass, &perm, fallback); - } - } - *permanent = 0; - return fallback(klass, path); + if (RB_TYPE_P(klass, T_MODULE)) { + if (rb_obj_class(klass) == rb_cModule) { + path = Qfalse; + } + else { + int perm; + path = rb_tmp_class_path(RBASIC(klass)->klass, &perm, fallback); + } + } + *permanent = 0; + return fallback(klass, path); } } @@ -235,15 +235,15 @@ rb_set_class_path_string(VALUE klass, VALUE under, VALUE name) ID pathid = classpath; if (under == rb_cObject) { - str = rb_str_new_frozen(name); + str = rb_str_new_frozen(name); } else { - int permanent; + int permanent; str = rb_tmp_class_path(under, &permanent, make_temporary_path); str = build_const_pathname(str, name); - if (!permanent) { - pathid = tmp_classpath; - } + if (!permanent) { + pathid = tmp_classpath; + } } rb_ivar_set(klass, pathid, str); } @@ -265,31 +265,31 @@ rb_path_to_class(VALUE pathname) VALUE c = rb_cObject; if (!rb_enc_asciicompat(enc)) { - rb_raise(rb_eArgError, "invalid class path encoding (non ASCII)"); + rb_raise(rb_eArgError, "invalid class path encoding (non ASCII)"); } pbeg = p = path; pend = path + RSTRING_LEN(pathname); if (path == pend || path[0] == '#') { - rb_raise(rb_eArgError, "can't retrieve anonymous class %"PRIsVALUE, - QUOTE(pathname)); + rb_raise(rb_eArgError, "can't retrieve anonymous class %"PRIsVALUE, + QUOTE(pathname)); } while (p < pend) { - while (p < pend && *p != ':') p++; - id = rb_check_id_cstr(pbeg, p-pbeg, enc); - if (p < pend && p[0] == ':') { - if ((size_t)(pend - p) < 2 || p[1] != ':') goto undefined_class; - p += 2; - pbeg = p; - } - if (!id) { + while (p < pend && *p != ':') p++; + id = rb_check_id_cstr(pbeg, p-pbeg, enc); + if (p < pend && p[0] == ':') { + if ((size_t)(pend - p) < 2 || p[1] != ':') goto undefined_class; + p += 2; + pbeg = p; + } + if (!id) { goto undefined_class; - } - c = rb_const_search(c, id, TRUE, FALSE, FALSE); - if (c == Qundef) goto undefined_class; + } + c = rb_const_search(c, id, TRUE, FALSE, FALSE); + if (c == Qundef) goto undefined_class; if (!rb_namespace_p(c)) { - rb_raise(rb_eTypeError, "%"PRIsVALUE" does not refer to class/module", - pathname); - } + rb_raise(rb_eTypeError, "%"PRIsVALUE" does not refer to class/module", + pathname); + } } RB_GC_GUARD(pathname); @@ -390,22 +390,22 @@ rb_global_entry(ID id) { struct rb_global_entry *entry = rb_find_global_entry(id); if (!entry) { - struct rb_global_variable *var; - entry = ALLOC(struct rb_global_entry); - var = ALLOC(struct rb_global_variable); - entry->id = id; - entry->var = var; + struct rb_global_variable *var; + entry = ALLOC(struct rb_global_entry); + var = ALLOC(struct rb_global_variable); + entry->id = id; + entry->var = var; entry->ractor_local = false; - var->counter = 1; - var->data = 0; - var->getter = rb_gvar_undef_getter; - var->setter = rb_gvar_undef_setter; - var->marker = rb_gvar_undef_marker; - var->compactor = rb_gvar_undef_compactor; + var->counter = 1; + var->data = 0; + var->getter = rb_gvar_undef_getter; + var->setter = rb_gvar_undef_setter; + var->marker = rb_gvar_undef_marker; + var->compactor = rb_gvar_undef_compactor; - var->block_trace = 0; - var->trace = 0; - rb_id_table_insert(rb_global_tbl, id, (VALUE)entry); + var->block_trace = 0; + var->trace = 0; + rb_id_table_insert(rb_global_tbl, id, (VALUE)entry); } return entry; } @@ -505,8 +505,8 @@ mark_global_entry(VALUE v, void *ignored) (*var->marker)(var->data); trace = var->trace; while (trace) { - if (trace->data) rb_gc_mark_maybe(trace->data); - trace = trace->next; + if (trace->data) rb_gc_mark_maybe(trace->data); + trace = trace->next; } return ID_TABLE_CONTINUE; } @@ -544,12 +544,12 @@ global_id(const char *name) if (name[0] == '$') id = rb_intern(name); else { - size_t len = strlen(name); + size_t len = strlen(name); VALUE vbuf = 0; char *buf = ALLOCV_N(char, vbuf, len+1); - buf[0] = '$'; - memcpy(buf+1, name, len); - id = rb_intern2(buf, len+1); + buf[0] = '$'; + memcpy(buf+1, name, len); + id = rb_intern2(buf, len+1); ALLOCV_END(vbuf); } return id; @@ -632,10 +632,10 @@ rb_f_trace_var(int argc, const VALUE *argv) struct trace_var *trace; if (rb_scan_args(argc, argv, "11", &var, &cmd) == 1) { - cmd = rb_block_proc(); + cmd = rb_block_proc(); } if (NIL_P(cmd)) { - return rb_f_untrace_var(argc, argv); + return rb_f_untrace_var(argc, argv); } entry = rb_global_entry(rb_to_id(var)); trace = ALLOC(struct trace_var); @@ -658,14 +658,14 @@ remove_trace(struct rb_global_variable *var) t.next = trace; trace = &t; while (trace->next) { - next = trace->next; - if (next->removed) { - trace->next = next->next; - xfree(next); - } - else { - trace = next; - } + next = trace->next; + if (next->removed) { + trace->next = next->next; + xfree(next); + } + else { + trace = next; + } } var->trace = t.next; } @@ -681,35 +681,35 @@ rb_f_untrace_var(int argc, const VALUE *argv) rb_scan_args(argc, argv, "11", &var, &cmd); id = rb_check_id(&var); if (!id) { - rb_name_error_str(var, "undefined global variable %"PRIsVALUE"", QUOTE(var)); + rb_name_error_str(var, "undefined global variable %"PRIsVALUE"", QUOTE(var)); } if ((entry = rb_find_global_entry(id)) == NULL) { - rb_name_error(id, "undefined global variable %"PRIsVALUE"", QUOTE_ID(id)); + rb_name_error(id, "undefined global variable %"PRIsVALUE"", QUOTE_ID(id)); } trace = entry->var->trace; if (NIL_P(cmd)) { - VALUE ary = rb_ary_new(); + VALUE ary = rb_ary_new(); - while (trace) { - struct trace_var *next = trace->next; - rb_ary_push(ary, (VALUE)trace->data); - trace->removed = 1; - trace = next; - } + while (trace) { + struct trace_var *next = trace->next; + rb_ary_push(ary, (VALUE)trace->data); + trace->removed = 1; + trace = next; + } - if (!entry->var->block_trace) remove_trace(entry->var); - return ary; + if (!entry->var->block_trace) remove_trace(entry->var); + return ary; } else { - while (trace) { - if (trace->data == cmd) { - trace->removed = 1; - if (!entry->var->block_trace) remove_trace(entry->var); - return rb_ary_new3(1, cmd); - } - trace = trace->next; - } + while (trace) { + if (trace->data == cmd) { + trace->removed = 1; + if (!entry->var->block_trace) remove_trace(entry->var); + return rb_ary_new3(1, cmd); + } + trace = trace->next; + } } return Qnil; } @@ -726,8 +726,8 @@ trace_ev(VALUE v) struct trace_var *trace = data->trace; while (trace) { - (*trace->func)(trace->data, data->val); - trace = trace->next; + (*trace->func)(trace->data, data->val); + trace = trace->next; } return Qnil; @@ -751,10 +751,10 @@ rb_gvar_set_entry(struct rb_global_entry *entry, VALUE val) (*var->setter)(val, entry->id, var->data); if (var->trace && !var->block_trace) { - var->block_trace = 1; - trace.trace = var->trace; - trace.val = val; - rb_ensure(trace_ev, (VALUE)&trace, trace_en, (VALUE)var); + var->block_trace = 1; + trace.trace = var->trace; + trace.val = val; + rb_ensure(trace_ev, (VALUE)&trace, trace_en, (VALUE)var); } return val; } @@ -836,22 +836,22 @@ rb_f_global_variables(void) rb_id_table_foreach(rb_global_tbl, gvar_i, (void *)ary); if (!NIL_P(backref)) { - char buf[2]; - int i, nmatch = rb_match_count(backref); - buf[0] = '$'; - for (i = 1; i <= nmatch; ++i) { - if (!rb_match_nth_defined(i, backref)) continue; - if (i < 10) { - /* probably reused, make static ID */ - buf[1] = (char)(i + '0'); - sym = ID2SYM(rb_intern2(buf, 2)); - } - else { - /* dynamic symbol */ - sym = rb_str_intern(rb_sprintf("$%d", i)); - } - rb_ary_push(ary, sym); - } + char buf[2]; + int i, nmatch = rb_match_count(backref); + buf[0] = '$'; + for (i = 1; i <= nmatch; ++i) { + if (!rb_match_nth_defined(i, backref)) continue; + if (i < 10) { + /* probably reused, make static ID */ + buf[1] = (char)(i + '0'); + sym = ID2SYM(rb_intern2(buf, 2)); + } + else { + /* dynamic symbol */ + sym = rb_str_intern(rb_sprintf("$%d", i)); + } + rb_ary_push(ary, sym); + } } return ary; } @@ -869,28 +869,28 @@ rb_alias_variable(ID name1, ID name2) entry2 = rb_global_entry(name2); if (!rb_id_table_lookup(gtbl, name1, &data1)) { - entry1 = ALLOC(struct rb_global_entry); - entry1->id = name1; - rb_id_table_insert(gtbl, name1, (VALUE)entry1); + entry1 = ALLOC(struct rb_global_entry); + entry1->id = name1; + rb_id_table_insert(gtbl, name1, (VALUE)entry1); } else if ((entry1 = (struct rb_global_entry *)data1)->var != entry2->var) { - struct rb_global_variable *var = entry1->var; - if (var->block_trace) { - rb_raise(rb_eRuntimeError, "can't alias in tracer"); - } - var->counter--; - if (var->counter == 0) { - struct trace_var *trace = var->trace; - while (trace) { - struct trace_var *next = trace->next; - xfree(trace); - trace = next; - } - xfree(var); - } + struct rb_global_variable *var = entry1->var; + if (var->block_trace) { + rb_raise(rb_eRuntimeError, "can't alias in tracer"); + } + var->counter--; + if (var->counter == 0) { + struct trace_var *trace = var->trace; + while (trace) { + struct trace_var *next = trace->next; + xfree(trace); + trace = next; + } + xfree(var); + } } else { - return; + return; } entry2->var->counter++; entry1->var = entry2->var; @@ -1001,17 +1001,17 @@ generic_ivar_delete(VALUE obj, ID id, VALUE undef) struct gen_ivtbl *ivtbl; if (gen_ivtbl_get(obj, id, &ivtbl)) { - st_table *iv_index_tbl = RCLASS_IV_INDEX_TBL(rb_obj_class(obj)); + st_table *iv_index_tbl = RCLASS_IV_INDEX_TBL(rb_obj_class(obj)); uint32_t index; if (iv_index_tbl && iv_index_tbl_lookup(iv_index_tbl, id, &index)) { - if (index < ivtbl->numiv) { - VALUE ret = ivtbl->ivptr[index]; + if (index < ivtbl->numiv) { + VALUE ret = ivtbl->ivptr[index]; - ivtbl->ivptr[index] = Qundef; - return ret == Qundef ? undef : ret; - } - } + ivtbl->ivptr[index] = Qundef; + return ret == Qundef ? undef : ret; + } + } } return undef; } @@ -1022,16 +1022,16 @@ generic_ivar_get(VALUE obj, ID id, VALUE undef) struct gen_ivtbl *ivtbl; if (gen_ivtbl_get(obj, id, &ivtbl)) { - st_table *iv_index_tbl = RCLASS_IV_INDEX_TBL(rb_obj_class(obj)); + st_table *iv_index_tbl = RCLASS_IV_INDEX_TBL(rb_obj_class(obj)); uint32_t index; - if (iv_index_tbl && iv_index_tbl_lookup(iv_index_tbl, id, &index)) { - if (index < ivtbl->numiv) { - VALUE ret = ivtbl->ivptr[index]; + if (iv_index_tbl && iv_index_tbl_lookup(iv_index_tbl, id, &index)) { + if (index < ivtbl->numiv) { + VALUE ret = ivtbl->ivptr[index]; - return ret == Qundef ? undef : ret; - } - } + return ret == Qundef ? undef : ret; + } + } } return undef; } @@ -1050,7 +1050,7 @@ gen_ivtbl_resize(struct gen_ivtbl *old, uint32_t n) ivtbl->numiv = n; for (; len < n; len++) { - ivtbl->ivptr[len] = Qundef; + ivtbl->ivptr[len] = Qundef; } return ivtbl; @@ -1090,7 +1090,7 @@ generic_ivar_update(st_data_t *k, st_data_t *v, st_data_t u, int existing) struct gen_ivtbl *ivtbl = 0; if (existing) { - ivtbl = (struct gen_ivtbl *)*v; + ivtbl = (struct gen_ivtbl *)*v; if (ivup->index < ivtbl->numiv) { ivup->u.ivtbl = ivtbl; return ST_STOP; @@ -1129,11 +1129,11 @@ generic_ivar_remove(VALUE obj, ID id, VALUE *valp) if (!gen_ivtbl_get(obj, id, &ivtbl)) return 0; if (index < ivtbl->numiv) { - if (ivtbl->ivptr[index] != Qundef) { - *valp = ivtbl->ivptr[index]; - ivtbl->ivptr[index] = Qundef; - return 1; - } + if (ivtbl->ivptr[index] != Qundef) { + *valp = ivtbl->ivptr[index]; + ivtbl->ivptr[index] = Qundef; + return 1; + } } return 0; } @@ -1144,7 +1144,7 @@ gen_ivtbl_mark(const struct gen_ivtbl *ivtbl) uint32_t i; for (i = 0; i < ivtbl->numiv; i++) { - rb_gc_mark(ivtbl->ivptr[i]); + rb_gc_mark(ivtbl->ivptr[i]); } } @@ -1154,7 +1154,7 @@ rb_mark_generic_ivar(VALUE obj) struct gen_ivtbl *ivtbl; if (gen_ivtbl_get(obj, 0, &ivtbl)) { - gen_ivtbl_mark(ivtbl); + gen_ivtbl_mark(ivtbl); } } @@ -1174,7 +1174,7 @@ rb_free_generic_ivar(VALUE obj) st_data_t key = (st_data_t)obj, ivtbl; if (st_delete(generic_ivtbl_no_ractor_check(obj), &key, &ivtbl)) - xfree((struct gen_ivtbl *)ivtbl); + xfree((struct gen_ivtbl *)ivtbl); } RUBY_FUNC_EXPORTED size_t @@ -1183,7 +1183,7 @@ rb_generic_ivar_memsize(VALUE obj) struct gen_ivtbl *ivtbl; if (gen_ivtbl_get(obj, 0, &ivtbl)) - return gen_ivtbl_bytes(ivtbl->numiv); + return gen_ivtbl_bytes(ivtbl->numiv); return 0; } @@ -1194,9 +1194,9 @@ gen_ivtbl_count(const struct gen_ivtbl *ivtbl) size_t n = 0; for (i = 0; i < ivtbl->numiv; i++) { - if (ivtbl->ivptr[i] != Qundef) { - n++; - } + if (ivtbl->ivptr[i] != Qundef) { + n++; + } } return n; @@ -1291,9 +1291,9 @@ rb_ivar_lookup(VALUE obj, ID id, VALUE undef) } } default: - if (FL_TEST(obj, FL_EXIVAR)) - return generic_ivar_get(obj, id, undef); - break; + if (FL_TEST(obj, FL_EXIVAR)) + return generic_ivar_get(obj, id, undef); + break; } return undef; } @@ -1338,17 +1338,17 @@ rb_ivar_delete(VALUE obj, ID id, VALUE undef) case T_CLASS: case T_MODULE: IVAR_ACCESSOR_SHOULD_BE_MAIN_RACTOR(id); - if (RCLASS_IV_TBL(obj)) { + if (RCLASS_IV_TBL(obj)) { st_data_t id_data = (st_data_t)id, val; if (lock_st_delete(RCLASS_IV_TBL(obj), &id_data, &val)) { return (VALUE)val; } } - break; + break; default: - if (FL_TEST(obj, FL_EXIVAR)) - return generic_ivar_delete(obj, id, undef); - break; + if (FL_TEST(obj, FL_EXIVAR)) + return generic_ivar_delete(obj, id, undef); + break; } return undef; } @@ -1389,10 +1389,10 @@ iv_index_tbl_extend(struct ivar_update *ivup, ID id, VALUE klass) if (st_lookup(ivup->u.iv_index_tbl, (st_data_t)id, &ent_data)) { ent = (void *)ent_data; ivup->index = ent->index; - return; + return; } if (ivup->u.iv_index_tbl->num_entries >= INT_MAX) { - rb_raise(rb_eArgError, "too many instance variables"); + rb_raise(rb_eArgError, "too many instance variables"); } ent = ALLOC(struct rb_iv_index_tbl_entry); ent->index = ivup->index = (uint32_t)ivup->u.iv_index_tbl->num_entries; @@ -1627,16 +1627,16 @@ rb_ivar_defined(VALUE obj, ID id) (val = ROBJECT_IVPTR(obj)[index]) != Qundef) { return Qtrue; } - break; + break; case T_CLASS: case T_MODULE: if (RCLASS_IV_TBL(obj) && lock_st_is_member(RCLASS_IV_TBL(obj), (st_data_t)id)) - return Qtrue; - break; + return Qtrue; + break; default: - if (FL_TEST(obj, FL_EXIVAR)) - return generic_ivar_defined(obj, id); - break; + if (FL_TEST(obj, FL_EXIVAR)) + return generic_ivar_defined(obj, id); + break; } return Qfalse; } @@ -1728,8 +1728,8 @@ gen_ivar_copy(ID id, VALUE val, st_data_t arg) RB_VM_LOCK_LEAVE(); if (ivup.index >= c->ivtbl->numiv) { - uint32_t newsize = iv_index_tbl_newsize(&ivup); - c->ivtbl = gen_ivtbl_resize(c->ivtbl, newsize); + uint32_t newsize = iv_index_tbl_newsize(&ivup); + c->ivtbl = gen_ivtbl_resize(c->ivtbl, newsize); } c->ivtbl->ivptr[ivup.index] = val; @@ -1749,30 +1749,30 @@ rb_copy_generic_ivar(VALUE clone, VALUE obj) goto clear; } if (gen_ivtbl_get(obj, 0, &ivtbl)) { - struct givar_copy c; - uint32_t i; + struct givar_copy c; + uint32_t i; - if (gen_ivtbl_count(ivtbl) == 0) - goto clear; + if (gen_ivtbl_count(ivtbl) == 0) + goto clear; - if (gen_ivtbl_get(clone, 0, &c.ivtbl)) { - for (i = 0; i < c.ivtbl->numiv; i++) - c.ivtbl->ivptr[i] = Qundef; - } - else { - c.ivtbl = gen_ivtbl_resize(0, ivtbl->numiv); - FL_SET(clone, FL_EXIVAR); - } + if (gen_ivtbl_get(clone, 0, &c.ivtbl)) { + for (i = 0; i < c.ivtbl->numiv; i++) + c.ivtbl->ivptr[i] = Qundef; + } + else { + c.ivtbl = gen_ivtbl_resize(0, ivtbl->numiv); + FL_SET(clone, FL_EXIVAR); + } VALUE klass = rb_obj_class(clone); - c.iv_index_tbl = iv_index_tbl_make(clone, klass); + c.iv_index_tbl = iv_index_tbl_make(clone, klass); c.obj = clone; c.klass = klass; - gen_ivar_each(obj, gen_ivar_copy, (st_data_t)&c); - /* - * c.ivtbl may change in gen_ivar_copy due to realloc, - * no need to free - */ + gen_ivar_each(obj, gen_ivar_copy, (st_data_t)&c); + /* + * c.ivtbl may change in gen_ivar_copy due to realloc, + * no need to free + */ RB_VM_LOCK_ENTER(); { generic_ivtbl_no_ractor_check(clone); @@ -1817,23 +1817,23 @@ rb_ivar_foreach(VALUE obj, rb_ivar_foreach_callback_func *func, st_data_t arg) switch (BUILTIN_TYPE(obj)) { case T_OBJECT: obj_ivar_each(obj, func, arg); - break; + break; case T_CLASS: case T_MODULE: IVAR_ACCESSOR_SHOULD_BE_MAIN_RACTOR(0); - if (RCLASS_IV_TBL(obj)) { + if (RCLASS_IV_TBL(obj)) { RB_VM_LOCK_ENTER(); { st_foreach_safe(RCLASS_IV_TBL(obj), func, arg); } RB_VM_LOCK_LEAVE(); - } - break; + } + break; default: - if (FL_TEST(obj, FL_EXIVAR)) { - gen_ivar_each(obj, func, arg); - } - break; + if (FL_TEST(obj, FL_EXIVAR)) { + gen_ivar_each(obj, func, arg); + } + break; } } @@ -1846,32 +1846,32 @@ rb_ivar_count(VALUE obj) switch (BUILTIN_TYPE(obj)) { case T_OBJECT: - if (ROBJECT_IV_INDEX_TBL(obj) != 0) { - st_index_t i, count, num = ROBJECT_NUMIV(obj); - const VALUE *const ivptr = ROBJECT_IVPTR(obj); - for (i = count = 0; i < num; ++i) { - if (ivptr[i] != Qundef) { - count++; - } - } - return count; - } - break; + if (ROBJECT_IV_INDEX_TBL(obj) != 0) { + st_index_t i, count, num = ROBJECT_NUMIV(obj); + const VALUE *const ivptr = ROBJECT_IVPTR(obj); + for (i = count = 0; i < num; ++i) { + if (ivptr[i] != Qundef) { + count++; + } + } + return count; + } + break; case T_CLASS: case T_MODULE: - if ((tbl = RCLASS_IV_TBL(obj)) != 0) { - return tbl->num_entries; - } - break; + if ((tbl = RCLASS_IV_TBL(obj)) != 0) { + return tbl->num_entries; + } + break; default: - if (FL_TEST(obj, FL_EXIVAR)) { - struct gen_ivtbl *ivtbl; + if (FL_TEST(obj, FL_EXIVAR)) { + struct gen_ivtbl *ivtbl; - if (gen_ivtbl_get(obj, 0, &ivtbl)) { - return gen_ivtbl_count(ivtbl); - } - } - break; + if (gen_ivtbl_get(obj, 0, &ivtbl)) { + return gen_ivtbl_count(ivtbl); + } + } + break; } return 0; } @@ -1883,7 +1883,7 @@ ivar_i(st_data_t k, st_data_t v, st_data_t a) VALUE ary = (VALUE)a; if (rb_is_instance_id(key)) { - rb_ary_push(ary, ID2SYM(key)); + rb_ary_push(ary, ID2SYM(key)); } return ST_CONTINUE; } @@ -1923,15 +1923,15 @@ rb_obj_instance_variables(VALUE obj) check_id_type(obj, &(name), rb_is_##type##_id, rb_is_##type##_name, message, strlen(message)) static ID check_id_type(VALUE obj, VALUE *pname, - int (*valid_id_p)(ID), int (*valid_name_p)(VALUE), - const char *message, size_t message_len) + int (*valid_id_p)(ID), int (*valid_name_p)(VALUE), + const char *message, size_t message_len) { ID id = rb_check_id(pname); VALUE name = *pname; if (id ? !valid_id_p(id) : !valid_name_p(name)) { - rb_name_err_raise_str(rb_fstring_new(message, message_len), - obj, name); + rb_name_err_raise_str(rb_fstring_new(message, message_len), + obj, name); } return id; } @@ -1971,7 +1971,7 @@ rb_obj_remove_instance_variable(VALUE obj, VALUE name) rb_check_frozen(obj); if (!id) { - goto not_defined; + goto not_defined; } switch (BUILTIN_TYPE(obj)) { @@ -1983,27 +1983,27 @@ rb_obj_remove_instance_variable(VALUE obj, VALUE name) ROBJECT_IVPTR(obj)[index] = Qundef; return val; } - break; + break; case T_CLASS: case T_MODULE: IVAR_ACCESSOR_SHOULD_BE_MAIN_RACTOR(id); - n = id; - if (RCLASS_IV_TBL(obj) && lock_st_delete(RCLASS_IV_TBL(obj), &n, &v)) { - return (VALUE)v; - } - break; + n = id; + if (RCLASS_IV_TBL(obj) && lock_st_delete(RCLASS_IV_TBL(obj), &n, &v)) { + return (VALUE)v; + } + break; default: - if (FL_TEST(obj, FL_EXIVAR)) { - if (generic_ivar_remove(obj, id, &val)) { - return val; - } - } - break; + if (FL_TEST(obj, FL_EXIVAR)) { + if (generic_ivar_remove(obj, id, &val)) { + return val; + } + } + break; } not_defined: rb_name_err_raise("instance variable %1$s not defined", - obj, name); + obj, name); UNREACHABLE_RETURN(Qnil); } @@ -2012,11 +2012,11 @@ static void uninitialized_constant(VALUE klass, VALUE name) { if (klass && rb_class_real(klass) != rb_cObject) - rb_name_err_raise("uninitialized constant %2$s::%1$s", - klass, name); + rb_name_err_raise("uninitialized constant %2$s::%1$s", + klass, name); else - rb_name_err_raise("uninitialized constant %1$s", - klass, name); + rb_name_err_raise("uninitialized constant %1$s", + klass, name); } VALUE @@ -2070,8 +2070,8 @@ rb_mod_const_missing(VALUE klass, VALUE name) VALUE ref = GET_EC()->private_const_reference; rb_vm_pop_cfunc_frame(); if (ref) { - rb_name_err_raise("private constant %2$s::%1$s referenced", - ref, name); + rb_name_err_raise("private constant %2$s::%1$s referenced", + ref, name); } uninitialized_constant(klass, name); @@ -2755,8 +2755,8 @@ rb_autoload_at_p(VALUE mod, ID id, int recur) while (!autoload_defined_p(mod, id)) { if (!recur) return Qnil; - mod = RCLASS_SUPER(mod); - if (!mod) return Qnil; + mod = RCLASS_SUPER(mod); + if (!mod) return Qnil; } load = check_autoload_required(mod, id, 0); if (!load) return Qnil; @@ -2768,13 +2768,13 @@ rb_const_warn_if_deprecated(const rb_const_entry_t *ce, VALUE klass, ID id) { if (RB_CONST_DEPRECATED_P(ce) && rb_warning_category_enabled_p(RB_WARN_CATEGORY_DEPRECATED)) { - if (klass == rb_cObject) { + if (klass == rb_cObject) { rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "constant ::%"PRIsVALUE" is deprecated", QUOTE_ID(id)); - } - else { + } + else { rb_category_warn(RB_WARN_CATEGORY_DEPRECATED, "constant %"PRIsVALUE"::%"PRIsVALUE" is deprecated", - rb_class_name(klass), QUOTE_ID(id)); - } + rb_class_name(klass), QUOTE_ID(id)); + } } } @@ -3017,7 +3017,7 @@ sv_i(ID key, VALUE v, void *a) st_table *tbl = a; if (rb_is_const_id(key)) { - st_update(tbl, (st_data_t)key, cv_i_update, (st_data_t)ce); + st_update(tbl, (st_data_t)key, cv_i_update, (st_data_t)ce); } return ID_TABLE_CONTINUE; } @@ -3026,7 +3026,7 @@ static enum rb_id_table_iterator_result rb_local_constants_i(ID const_name, VALUE const_value, void *ary) { if (rb_is_const_id(const_name) && !RB_CONST_PRIVATE_P((rb_const_entry_t *)const_value)) { - rb_ary_push((VALUE)ary, ID2SYM(const_name)); + rb_ary_push((VALUE)ary, ID2SYM(const_name)); } return ID_TABLE_CONTINUE; } @@ -3054,7 +3054,7 @@ rb_mod_const_at(VALUE mod, void *data) { st_table *tbl = data; if (!tbl) { - tbl = st_init_numtable(); + tbl = st_init_numtable(); } if (RCLASS_CONST_TBL(mod)) { RB_VM_LOCK_ENTER(); @@ -3071,10 +3071,10 @@ rb_mod_const_of(VALUE mod, void *data) { VALUE tmp = mod; for (;;) { - data = rb_mod_const_at(tmp, data); - tmp = RCLASS_SUPER(tmp); - if (!tmp) break; - if (tmp == rb_cObject && mod != rb_cObject) break; + data = rb_mod_const_at(tmp, data); + tmp = RCLASS_SUPER(tmp); + if (!tmp) break; + if (tmp == rb_cObject && mod != rb_cObject) break; } return data; } @@ -3128,10 +3128,10 @@ rb_mod_constants(int argc, const VALUE *argv, VALUE mod) if (rb_check_arity(argc, 0, 1)) inherit = RTEST(argv[0]); if (inherit) { - return rb_const_list(rb_mod_const_of(mod, 0)); + return rb_const_list(rb_mod_const_of(mod, 0)); } else { - return rb_local_constants(mod); + return rb_local_constants(mod); } } @@ -3145,27 +3145,27 @@ rb_const_defined_0(VALUE klass, ID id, int exclude, int recurse, int visibility) tmp = klass; retry: while (tmp) { - if ((ce = rb_const_lookup(tmp, id))) { - if (visibility && RB_CONST_PRIVATE_P(ce)) { - return (int)Qfalse; - } - if (ce->value == Qundef && !check_autoload_required(tmp, id, 0) && - !rb_autoloading_value(tmp, id, NULL, NULL)) - return (int)Qfalse; - - if (exclude && tmp == rb_cObject && klass != rb_cObject) { - return (int)Qfalse; - } - - return (int)Qtrue; - } - if (!recurse) break; - tmp = RCLASS_SUPER(tmp); + if ((ce = rb_const_lookup(tmp, id))) { + if (visibility && RB_CONST_PRIVATE_P(ce)) { + return (int)Qfalse; + } + if (ce->value == Qundef && !check_autoload_required(tmp, id, 0) && + !rb_autoloading_value(tmp, id, NULL, NULL)) + return (int)Qfalse; + + if (exclude && tmp == rb_cObject && klass != rb_cObject) { + return (int)Qfalse; + } + + return (int)Qtrue; + } + if (!recurse) break; + tmp = RCLASS_SUPER(tmp); } if (!exclude && !mod_retry && BUILTIN_TYPE(klass) == T_MODULE) { - mod_retry = 1; - tmp = rb_cObject; - goto retry; + mod_retry = 1; + tmp = rb_cObject; + goto retry; } return (int)Qfalse; } @@ -3408,7 +3408,7 @@ const_tbl_update(struct autoload_const *ac, int autoload_force) static void setup_const_entry(rb_const_entry_t *ce, VALUE klass, VALUE val, - rb_const_flag_t visibility) + rb_const_flag_t visibility) { ce->flag = visibility; RB_OBJ_WRITE(klass, &ce->value, val); @@ -3435,7 +3435,7 @@ rb_define_global_const(const char *name, VALUE val) static void set_const_visibility(VALUE mod, int argc, const VALUE *argv, - rb_const_flag_t flag, rb_const_flag_t mask) + rb_const_flag_t flag, rb_const_flag_t mask) { int i; rb_const_entry_t *ce; @@ -3443,35 +3443,35 @@ set_const_visibility(VALUE mod, int argc, const VALUE *argv, rb_class_modify_check(mod); if (argc == 0) { - rb_warning("%"PRIsVALUE" with no argument is just ignored", - QUOTE_ID(rb_frame_callee())); - return; + rb_warning("%"PRIsVALUE" with no argument is just ignored", + QUOTE_ID(rb_frame_callee())); + return; } for (i = 0; i < argc; i++) { - struct autoload_const *ac; - VALUE val = argv[i]; - id = rb_check_id(&val); - if (!id) { + struct autoload_const *ac; + VALUE val = argv[i]; + id = rb_check_id(&val); + if (!id) { undefined_constant(mod, val); - } - if ((ce = rb_const_lookup(mod, id))) { - ce->flag &= ~mask; - ce->flag |= flag; - if (ce->value == Qundef) { - struct autoload_data *ele; - - ele = autoload_data_for_named_constant(mod, id, &ac); - if (ele) { - ac->flag &= ~mask; - ac->flag |= flag; - } - } + } + if ((ce = rb_const_lookup(mod, id))) { + ce->flag &= ~mask; + ce->flag |= flag; + if (ce->value == Qundef) { + struct autoload_data *ele; + + ele = autoload_data_for_named_constant(mod, id, &ac); + if (ele) { + ac->flag &= ~mask; + ac->flag |= flag; + } + } rb_clear_constant_cache_for_id(id); - } - else { + } + else { undefined_constant(mod, ID2SYM(id)); - } + } } } @@ -3550,7 +3550,7 @@ static VALUE original_module(VALUE c) { if (RB_TYPE_P(c, T_ICLASS)) - return RBASIC(c)->klass; + return RBASIC(c)->klass; return c; } @@ -3565,10 +3565,10 @@ static VALUE cvar_front_klass(VALUE klass) { if (FL_TEST(klass, FL_SINGLETON)) { - VALUE obj = rb_ivar_get(klass, id__attached__); + VALUE obj = rb_ivar_get(klass, id__attached__); if (rb_namespace_p(obj)) { - return obj; - } + return obj; + } } return RCLASS_SUPER(klass); } @@ -3577,17 +3577,17 @@ static void cvar_overtaken(VALUE front, VALUE target, ID id) { if (front && target != front) { - st_data_t did = (st_data_t)id; + st_data_t did = (st_data_t)id; if (original_module(front) != original_module(target)) { rb_raise(rb_eRuntimeError, "class variable % "PRIsVALUE" of %"PRIsVALUE" is overtaken by %"PRIsVALUE"", - ID2SYM(id), rb_class_name(original_module(front)), - rb_class_name(original_module(target))); - } - if (BUILTIN_TYPE(front) == T_CLASS) { - st_delete(RCLASS_IV_TBL(front), &did, 0); - } + ID2SYM(id), rb_class_name(original_module(front)), + rb_class_name(original_module(target))); + } + if (BUILTIN_TYPE(front) == T_CLASS) { + st_delete(RCLASS_IV_TBL(front), &did, 0); + } } } @@ -3604,7 +3604,7 @@ find_cvar(VALUE klass, VALUE * front, VALUE * target, ID id) } for (klass = cvar_front_klass(klass); klass; klass = RCLASS_SUPER(klass)) { - if (cvar_lookup_at(klass, id, (&v))) { + if (cvar_lookup_at(klass, id, (&v))) { if (!*front) { *front = klass; } @@ -3617,9 +3617,9 @@ find_cvar(VALUE klass, VALUE * front, VALUE * target, ID id) #define CVAR_FOREACH_ANCESTORS(klass, v, r) \ for (klass = cvar_front_klass(klass); klass; klass = RCLASS_SUPER(klass)) { \ - if (cvar_lookup_at(klass, id, (v))) { \ - r; \ - } \ + if (cvar_lookup_at(klass, id, (v))) { \ + r; \ + } \ } #define CVAR_LOOKUP(v,r) do {\ @@ -3650,10 +3650,10 @@ rb_cvar_set(VALUE klass, ID id, VALUE val) tmp = klass; CVAR_LOOKUP(0, {if (!front) front = klass; target = klass;}); if (target) { - cvar_overtaken(front, target, id); + cvar_overtaken(front, target, id); } else { - target = tmp; + target = tmp; } if (RB_TYPE_P(target, T_ICLASS)) { @@ -3704,8 +3704,8 @@ rb_cvar_find(VALUE klass, ID id, VALUE *front) value = find_cvar(klass, front, &target, id); if (!target) { - rb_name_err_raise("uninitialized class variable %1$s in %2$s", - klass, ID2SYM(id)); + rb_name_err_raise("uninitialized class variable %1$s in %2$s", + klass, ID2SYM(id)); } cvar_overtaken(*front, target, id); return (VALUE)value; @@ -3731,8 +3731,8 @@ cv_intern(VALUE klass, const char *name) { ID id = rb_intern(name); if (!rb_is_class_id(id)) { - rb_name_err_raise("wrong class variable name %1$s", - klass, rb_str_new_cstr(name)); + rb_name_err_raise("wrong class variable name %1$s", + klass, rb_str_new_cstr(name)); } return id; } @@ -3764,7 +3764,7 @@ cv_i(st_data_t k, st_data_t v, st_data_t a) st_table *tbl = (st_table *)a; if (rb_is_class_id(key)) { - st_update(tbl, (st_data_t)key, cv_i_update, 0); + st_update(tbl, (st_data_t)key, cv_i_update, 0); } return ST_CONTINUE; } @@ -3774,10 +3774,10 @@ mod_cvar_at(VALUE mod, void *data) { st_table *tbl = data; if (!tbl) { - tbl = st_init_numtable(); + tbl = st_init_numtable(); } if (RCLASS_IV_TBL(mod)) { - st_foreach_safe(RCLASS_IV_TBL(mod), cv_i, (st_data_t)tbl); + st_foreach_safe(RCLASS_IV_TBL(mod), cv_i, (st_data_t)tbl); } return tbl; } @@ -3793,9 +3793,9 @@ mod_cvar_of(VALUE mod, void *data) } } for (;;) { - data = mod_cvar_at(tmp, data); - tmp = RCLASS_SUPER(tmp); - if (!tmp) break; + data = mod_cvar_at(tmp, data); + tmp = RCLASS_SUPER(tmp); + if (!tmp) break; } return data; } @@ -3850,10 +3850,10 @@ rb_mod_class_variables(int argc, const VALUE *argv, VALUE mod) if (rb_check_arity(argc, 0, 1)) inherit = RTEST(argv[0]); if (inherit) { - tbl = mod_cvar_of(mod, 0); + tbl = mod_cvar_of(mod, 0); } else { - tbl = mod_cvar_at(mod, 0); + tbl = mod_cvar_at(mod, 0); } return cvar_list(tbl); } @@ -3888,10 +3888,10 @@ rb_mod_remove_cvar(VALUE mod, VALUE name) } rb_check_frozen(mod); if (RCLASS_IV_TBL(mod) && st_delete(RCLASS_IV_TBL(mod), &n, &val)) { - return (VALUE)val; + return (VALUE)val; } if (rb_cvar_defined(mod, id)) { - rb_name_err_raise("cannot remove %1$s for %2$s", mod, ID2SYM(id)); + rb_name_err_raise("cannot remove %1$s for %2$s", mod, ID2SYM(id)); } not_defined: rb_name_err_raise("class variable %1$s not defined for %2$s", |