aboutsummaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/variable.c b/variable.c
index 646d60d6eb..2dba76668b 100644
--- a/variable.c
+++ b/variable.c
@@ -1134,9 +1134,12 @@ static st_table *
iv_index_tbl_make(VALUE obj)
{
VALUE klass = rb_obj_class(obj);
- st_table *iv_index_tbl = RCLASS_IV_INDEX_TBL(klass);
+ st_table *iv_index_tbl;
- if (!iv_index_tbl) {
+ if (!klass) {
+ rb_raise(rb_eTypeError, "hidden object cannot have instance variables");
+ }
+ if (!(iv_index_tbl = RCLASS_IV_INDEX_TBL(klass))) {
iv_index_tbl = RCLASS_IV_INDEX_TBL(klass) = st_init_numtable();
}