Skip to content

Commit

Permalink
Slight cleanup of code
Browse files Browse the repository at this point in the history
  • Loading branch information
Ryan Scott committed Jul 21, 2013
1 parent eb0ee35 commit 3ebd816
Showing 1 changed file with 25 additions and 25 deletions.
50 changes: 25 additions & 25 deletions src/kernel.c
Original file line number Diff line number Diff line change
Expand Up @@ -549,37 +549,37 @@ obj_is_instance_of(mrb_state *mrb, mrb_value self)
}

static void
valid_iv_name(mrb_state *mrb, mrb_sym id, const char* s, size_t len)
valid_iv_name(mrb_state *mrb, mrb_sym iv_name_id, const char* s, size_t len)
{
if (len < 2 || !(s[0] == '@' && s[1] != '@')) {
mrb_name_error(mrb, id, "`%S' is not allowed as an instance variable name", mrb_sym2str(mrb, id));
mrb_name_error(mrb, iv_name_id, "`%S' is not allowed as an instance variable name", mrb_sym2str(mrb, iv_name_id));
}
}

static void
check_iv_name(mrb_state *mrb, mrb_sym id)
check_iv_name(mrb_state *mrb, mrb_sym iv_name_id)
{
const char *s;
size_t len;

s = mrb_sym2name_len(mrb, id, &len);
valid_iv_name(mrb, id, s, len);
s = mrb_sym2name_len(mrb, iv_name_id, &len);
valid_iv_name(mrb, iv_name_id, s, len);
}

static mrb_sym
get_valid_iv_sym(mrb_state *mrb, mrb_value val)
get_valid_iv_sym(mrb_state *mrb, mrb_value iv_name)
{
mrb_sym id;

if (mrb_string_p(val)) {
id = mrb_intern_cstr(mrb, RSTRING_PTR(val));
valid_iv_name(mrb, id, RSTRING_PTR(val), RSTRING_LEN(val));
} else if(mrb_symbol_p(val)) {
id = mrb_symbol(val);
check_iv_name(mrb, id);
mrb_sym iv_name_id;

if (mrb_string_p(iv_name)) {
iv_name_id = mrb_intern_cstr(mrb, RSTRING_PTR(iv_name));
valid_iv_name(mrb, iv_name_id, RSTRING_PTR(iv_name), RSTRING_LEN(iv_name));
} else if(mrb_symbol_p(iv_name)) {
iv_name_id = mrb_symbol(iv_name);
check_iv_name(mrb, iv_name_id);
}

return id;
return iv_name_id;
}

/* 15.3.1.3.20 */
Expand Down Expand Up @@ -637,13 +637,13 @@ mrb_obj_ivar_defined(mrb_state *mrb, mrb_value self)
mrb_value
mrb_obj_ivar_get(mrb_state *mrb, mrb_value self)
{
mrb_sym id;
mrb_value sym;
mrb_sym iv_name_id;
mrb_value iv_name;

mrb_get_args(mrb, "o", &sym);
mrb_get_args(mrb, "o", &iv_name);

id = get_valid_iv_sym(mrb, sym);
return mrb_iv_get(mrb, self, id);
iv_name_id = get_valid_iv_sym(mrb, iv_name);
return mrb_iv_get(mrb, self, iv_name_id);
}

/* 15.3.1.3.22 */
Expand All @@ -669,13 +669,13 @@ mrb_obj_ivar_get(mrb_state *mrb, mrb_value self)
mrb_value
mrb_obj_ivar_set(mrb_state *mrb, mrb_value self)
{
mrb_sym id;
mrb_value sym, val;
mrb_sym iv_name_id;
mrb_value iv_name, val;

mrb_get_args(mrb, "oo", &sym, &val);
mrb_get_args(mrb, "oo", &iv_name, &val);

id = get_valid_iv_sym(mrb, sym);
mrb_iv_set(mrb, self, id, val);
iv_name_id = get_valid_iv_sym(mrb, iv_name);
mrb_iv_set(mrb, self, iv_name_id, val);
return val;
}

Expand Down

0 comments on commit 3ebd816

Please sign in to comment.