File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -283,7 +283,8 @@ MCRecordCopyAsBaseTypeAndRelease(MCRecordRef self,
283283 * make it immutable */
284284 if (self -> references == 1 )
285285 {
286- self -> typeinfo = p_base_typeinfo;
286+ MCValueRelease (self -> typeinfo);
287+ self -> typeinfo = MCValueRetain (p_base_typeinfo);
287288 self -> flags &= ~kMCRecordFlagIsMutable ;
288289 r_new_record = self;
289290 return true ;
@@ -336,7 +337,8 @@ MCRecordCopyAsDerivedTypeAndRelease(MCRecordRef self,
336337 self -> fields[i] = MCValueRetain (kMCNull );
337338
338339 /* Set the typeinfo and make immutable */
339- self -> typeinfo = p_derived_typeinfo;
340+ MCValueRelease (self -> typeinfo);
341+ self -> typeinfo = MCValueRetain (p_derived_typeinfo);
340342 self -> flags &= ~kMCRecordFlagIsMutable ;
341343
342344 r_new_record = self;
@@ -428,6 +430,7 @@ void __MCRecordDestroy(__MCRecord *self)
428430
429431 for (uindex_t i = 0 ; i < __count_fields (t_resolved_typeinfo); i++)
430432 MCValueRelease (self -> fields[i]);
433+ MCValueRelease (self -> typeinfo);
431434 MCMemoryDelete (self -> fields);
432435}
433436
You can’t perform that action at this time.
0 commit comments