Skip to content

Commit 7c46fef

Browse files
committed
Simplify rb_obj_set_fields
No need to handle `fields_obj == 0`.
1 parent f473f14 commit 7c46fef

1 file changed

Lines changed: 5 additions & 10 deletions

File tree

variable.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,21 +1255,16 @@ rb_obj_set_fields(VALUE obj, VALUE fields_obj, ID field_name, VALUE original_fie
12551255
{
12561256
ivar_ractor_check(obj, field_name);
12571257

1258-
RUBY_ASSERT(!fields_obj || IMEMO_TYPE_P(fields_obj, imemo_fields));
1258+
RUBY_ASSERT(IMEMO_TYPE_P(fields_obj, imemo_fields));
12591259
RUBY_ASSERT(!original_fields_obj || IMEMO_TYPE_P(original_fields_obj, imemo_fields));
12601260

12611261
if (fields_obj != original_fields_obj) {
1262-
if (fields_obj) {
1263-
RB_VM_LOCKING() {
1264-
st_insert(generic_fields_tbl_, (st_data_t)obj, (st_data_t)fields_obj);
1265-
}
1266-
1267-
RB_OBJ_WRITTEN(obj, original_fields_obj, fields_obj);
1268-
}
1269-
else {
1270-
rb_free_generic_ivar(obj);
1262+
RB_VM_LOCKING() {
1263+
st_insert(generic_fields_tbl_, (st_data_t)obj, (st_data_t)fields_obj);
12711264
}
12721265

1266+
RB_OBJ_WRITTEN(obj, original_fields_obj, fields_obj);
1267+
12731268
if (original_fields_obj) {
12741269
// Clear root shape to avoid triggering cleanup such as free_object_id.
12751270
rb_imemo_fields_clear(original_fields_obj);

0 commit comments

Comments
 (0)