Skip to content

Commit 14c8f50

Browse files
committed
handle renamed RubyObjectType
1 parent 4379829 commit 14c8f50

File tree

3 files changed

+27
-11
lines changed

3 files changed

+27
-11
lines changed

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/ruby/RubyHeapFragment.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@
2424
*/
2525
package org.graalvm.visualvm.heapviewer.truffle.lang.ruby;
2626

27-
import org.graalvm.visualvm.lib.jfluid.heap.Heap;
28-
import org.graalvm.visualvm.lib.jfluid.heap.Instance;
27+
import java.util.Iterator;
2928
import org.graalvm.visualvm.heapviewer.HeapContext;
3029
import org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObjectLanguageHeapFragment;
31-
import java.util.Iterator;
30+
import org.graalvm.visualvm.lib.jfluid.heap.Heap;
31+
import org.graalvm.visualvm.lib.jfluid.heap.Instance;
32+
import org.graalvm.visualvm.lib.jfluid.heap.JavaClass;
3233
import org.openide.util.NbBundle;
3334

3435
/**
@@ -41,12 +42,15 @@
4142
class RubyHeapFragment extends DynamicObjectLanguageHeapFragment<RubyObject, RubyType> {
4243

4344
static final String RUBY_LANG_ID = "org.truffleruby.language.RubyObjectType"; // NOI18N
45+
static final String RUBY_LANG_ID1 = "org.truffleruby.interop.RubyObjectType"; // NOI18N
4446

4547
private static final String RUBY_HEAP_ID = "ruby_heap"; // NOI18N
4648

49+
private final String rubyLangId;
4750

48-
RubyHeapFragment(RubyLanguage language, Instance langID, Heap heap) {
51+
RubyHeapFragment(RubyLanguage language, JavaClass rubyLangIdClass, Instance langID, Heap heap) {
4952
super(RUBY_HEAP_ID, Bundle.RubyHeapFragment_Name(), fragmentDescription(langID, heap), language, heap);
53+
rubyLangId = rubyLangIdClass.getName();
5054
}
5155

5256

@@ -57,12 +61,12 @@ static RubyHeapFragment fromContext(HeapContext context) {
5761

5862
@Override
5963
public Iterator<Instance> getInstancesIterator() {
60-
return languageInstancesIterator(RUBY_LANG_ID);
64+
return languageInstancesIterator(rubyLangId);
6165
}
6266

6367
@Override
6468
public Iterator<RubyObject> getObjectsIterator() {
65-
return languageObjectsIterator(RUBY_LANG_ID);
69+
return languageObjectsIterator(rubyLangId);
6670
}
6771

6872

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/ruby/RubyLanguage.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,15 @@ protected RubyHeapFragment createFragment(Heap heap) {
6464
Instance langID = getLanguageInfo(heap, RUBY_LANGINFO_ID);
6565
if (langID == null) return null;
6666

67-
JavaClass rubyMainClass = heap.getJavaClassByName(RubyHeapFragment.RUBY_LANG_ID);
68-
if (rubyMainClass == null) return null;
67+
JavaClass rubyMainClass = heap.getJavaClassByName(RubyHeapFragment.RUBY_LANG_ID1);
68+
if (rubyMainClass == null) {
69+
rubyMainClass = heap.getJavaClassByName(RubyHeapFragment.RUBY_LANG_ID);
70+
if (rubyMainClass == null) {
71+
return null;
72+
}
73+
}
6974

70-
return new RubyHeapFragment(this, langID, heap);
75+
return new RubyHeapFragment(this, rubyMainClass, langID, heap);
7176
}
7277

7378

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/ruby/RubyObject.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject;
2828
import org.graalvm.visualvm.lib.jfluid.heap.Instance;
29+
import org.graalvm.visualvm.lib.jfluid.heap.JavaClass;
2930

3031
/**
3132
*
@@ -42,12 +43,18 @@ class RubyObject extends DynamicObject {
4243
}
4344

4445
boolean isRubyObject() {
45-
return RubyHeapFragment.RUBY_LANG_ID.equals(getLanguageId().getName());
46+
return isRubyLangId(getLanguageId());
4647
}
4748

4849
static boolean isRubyObject(Instance instance) {
4950
return DynamicObject.isDynamicObject(instance) &&
50-
RubyHeapFragment.RUBY_LANG_ID.equals(DynamicObject.getLanguageId(instance).getName());
51+
isRubyLangId(DynamicObject.getLanguageId(instance));
5152
}
5253

54+
private static boolean isRubyLangId(JavaClass langIdClass) {
55+
String className = langIdClass.getName();
56+
57+
return RubyHeapFragment.RUBY_LANG_ID.equals(className) || RubyHeapFragment.RUBY_LANG_ID1.equals(className);
58+
}
59+
5360
}

0 commit comments

Comments
 (0)