Commit b8547c3c65e1a8c553397be3d8f574c0ce49d144

handle also array in young collections
  
296296 helper.die("vmClass == null in walkObject()");
297297 } else if (vmClass.isArray()) {
298298 if (!vmClass.isPrimitiveArray()) {
299 // checkArrayReferences(object);
299 decrementRefCountForArrayElems(object);
300300 }
301301 } else {
302302 return decrementRefCountForFields(object, (VmNormalClass<?>) vmClass);
303303 }
304304 return false;
305305 }
306
306
307 private void decrementRefCountForArrayElems(Object object) {
308 try {
309 final Object[] arr = (Object[]) object;
310 final int length = arr.length;
311 for (int i = 0; i < length; i++) {
312 final Object child = arr[i];
313 if (child != null) {
314 helper.decRef(child);
315 }
316 }
317 } catch (ClassCastException ex) {
318 throw ex;
319 }
320 }
321
307322 private final boolean decrementRefCountForFields(Object object, VmNormalClass<?> vmClass) {
308323 final int[] referenceOffsets = vmClass.getReferenceOffsets();
309324 final int cnt = referenceOffsets.length;