Skip to content

Commit d936905

Browse files
committed
heap.finalizables() fixed
1 parent b7e7ac9 commit d936905

File tree

2 files changed

+9
-10
lines changed
  • visualvm/libs.profiler/profiler.oql/src/org/graalvm/visualvm/lib/profiler/oql/engine/api/impl

2 files changed

+9
-10
lines changed

visualvm/libs.profiler/profiler.oql/src/org/graalvm/visualvm/lib/profiler/oql/engine/api/impl/Snapshot.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -298,21 +298,20 @@ public Iterator getReferees(Object obj, boolean includeWeak) {
298298

299299
public Iterator getFinalizerObjects() {
300300
JavaClass clazz = findClass("java.lang.ref.Finalizer"); // NOI18N
301-
Instance queue = ((ObjectFieldValue) clazz.getValueOfStaticField("queue")).getInstance(); // NOI18N
302-
ObjectFieldValue headFld = (ObjectFieldValue) queue.getValueOfField("head"); // NOI18N
301+
Instance queue = (Instance) clazz.getValueOfStaticField("queue"); // NOI18N
302+
Instance head = (Instance) queue.getValueOfField("head"); // NOI18N
303303

304304
List finalizables = new ArrayList();
305-
if (headFld != null) {
306-
Instance head = (Instance) headFld.getInstance();
305+
if (head != null) {
307306
while (true) {
308-
ObjectFieldValue referentFld = (ObjectFieldValue) head.getValueOfField("referent"); // NOI18N
309-
ObjectFieldValue nextFld = (ObjectFieldValue) head.getValueOfField("next"); // NOI18N
307+
Instance referent = (Instance) head.getValueOfField("referent"); // NOI18N
308+
Instance next = (Instance) head.getValueOfField("next"); // NOI18N
310309

311-
if (nextFld == null || nextFld.getInstance().equals(head)) {
310+
finalizables.add(referent);
311+
if (next == null || next.equals(head)) {
312312
break;
313313
}
314-
head = (Instance) nextFld.getInstance();
315-
finalizables.add(referentFld.getInstance());
314+
head = next;
316315
}
317316
}
318317
return finalizables.iterator();

visualvm/libs.profiler/profiler.oql/src/org/graalvm/visualvm/lib/profiler/oql/engine/api/impl/hat.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ function wrapHeapSnapshot(heap) {
784784
*/
785785
finalizables: function() {
786786
var tmp = this.snapshot.getFinalizerObjects();
787-
return wrapperIterator(tmp);
787+
return wrapIterator(tmp);
788788
},
789789

790790
/**

0 commit comments

Comments
 (0)