3 * Garbage collection routines
10 byte gCurrentMark = 0;
21 void mark (Object *obj)
27 assert (is_allocated (obj), GC0);
30 if (is_gc_marked (obj))
35 if (get_element_type (obj) == T_REFERENCE)
38 unsigned short length = get_array_length (obj);
39 REFERENCE *refarr = ref_array (obj);
41 for (i = 0; i < length; i++)
47 ClassRecord *classRecord;
50 classIndex = get_na_class_index (obj);
53 classRecord = get_class_record (classIndex);
54 // Mark fields of type REFERENCE.
55 mark_reference_fields (obj, classRecord);
56 if (classIndex == JAVA_LANG_OBJECT)
58 classIndex = classRecord -> parentClass;