Skip to content

Commit

Permalink
deserialization: rely on knowledge of owned_objects REPR
Browse files Browse the repository at this point in the history
  • Loading branch information
timo committed Oct 16, 2019
1 parent 4d56029 commit bcff48c
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions src/6model/serialization.c
Original file line number Diff line number Diff line change
Expand Up @@ -1952,9 +1952,12 @@ MVMObject * MVM_serialization_read_ref(MVMThreadContext *tc, MVMSerializationRea
case REFVAR_VM_ARR_VAR:
result = read_array_var(tc, reader);
if (reader->current_object) {
MVM_repr_push_o(tc, reader->root.sc->body->owned_objects, result);
MVM_repr_push_o(tc, reader->root.sc->body->owned_objects,
reader->current_object);
MVMRegister value;
MVMObject *owned_objects = reader->root.sc->body->owned_objects;
value.o = result;
MVM_VMArray_push(tc, STABLE(owned_objects), owned_objects, OBJECT_BODY(owned_objects), value, MVM_reg_obj);
value.o = reader->current_object;
MVM_VMArray_push(tc, STABLE(owned_objects), owned_objects, OBJECT_BODY(owned_objects), value, MVM_reg_obj);
}
return result;
case REFVAR_VM_ARR_STR:
Expand All @@ -1964,9 +1967,12 @@ MVMObject * MVM_serialization_read_ref(MVMThreadContext *tc, MVMSerializationRea
case REFVAR_VM_HASH_STR_VAR:
result = read_hash_str_var(tc, reader);
if (reader->current_object) {
MVM_repr_push_o(tc, reader->root.sc->body->owned_objects, result);
MVM_repr_push_o(tc, reader->root.sc->body->owned_objects,
reader->current_object);
MVMRegister value;
MVMObject *owned_objects = reader->root.sc->body->owned_objects;
value.o = result;
MVM_VMArray_push(tc, STABLE(owned_objects), owned_objects, OBJECT_BODY(owned_objects), value, MVM_reg_obj);
value.o = reader->current_object;
MVM_VMArray_push(tc, STABLE(owned_objects), owned_objects, OBJECT_BODY(owned_objects), value, MVM_reg_obj);
}
return result;
case REFVAR_STATIC_CODEREF:
Expand Down

0 comments on commit bcff48c

Please sign in to comment.