Skip to content

Commit 6ce0307

Browse files
committed
GH-344 logical value for com.sun.tools.javac.code.Symbol and its subclasses
1 parent c7fb504 commit 6ce0307

File tree

1 file changed

+19
-5
lines changed
  • visualvm/libs.profiler/profiler.heapwalker/src/org/graalvm/visualvm/lib/profiler/heapwalk/details/netbeans

1 file changed

+19
-5
lines changed

visualvm/libs.profiler/profiler.heapwalker/src/org/graalvm/visualvm/lib/profiler/heapwalk/details/netbeans/JavacDetailsProvider.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.graalvm.visualvm.lib.jfluid.heap.Instance;
3030
import org.graalvm.visualvm.lib.jfluid.heap.PrimitiveArrayInstance;
3131
import org.graalvm.visualvm.lib.profiler.heapwalk.details.spi.DetailsProvider;
32+
import org.graalvm.visualvm.lib.profiler.heapwalk.details.spi.DetailsUtils;
3233
import org.openide.util.Exceptions;
3334
import org.openide.util.lookup.ServiceProvider;
3435

@@ -39,13 +40,14 @@
3940
@ServiceProvider(service=DetailsProvider.class)
4041
public class JavacDetailsProvider extends DetailsProvider.Basic {
4142

42-
private static final String SHAREDNAMETABLE_NAMEIMPL_MASK =
43-
"com.sun.tools.javac.util.SharedNameTable$NameImpl"; // NOI18N
44-
private static final String NAME_MASK =
45-
"com.sun.tools.javac.util.Name"; // NOI18N
43+
private static final String SHAREDNAMETABLE_NAMEIMPL_MASK = "com.sun.tools.javac.util.SharedNameTable$NameImpl"; // NOI18N
44+
private static final String NAME_MASK = "com.sun.tools.javac.util.Name"; // NOI18N
45+
private static final String SYMBOL_MASK = "com.sun.tools.javac.code.Symbol+"; // NOI18N
46+
private static final String CLASS_SYM_MASK = "com.sun.tools.javac.code.Symbol$ClassSymbol"; // NOI18N
47+
private static final String PACKAGE_SYM_MASK = "com.sun.tools.javac.code.Symbol$PackageSymbol"; // NOI18N
4648

4749
public JavacDetailsProvider() {
48-
super(SHAREDNAMETABLE_NAMEIMPL_MASK, NAME_MASK);
50+
super(SHAREDNAMETABLE_NAMEIMPL_MASK, NAME_MASK, SYMBOL_MASK, CLASS_SYM_MASK, PACKAGE_SYM_MASK);
4951
}
5052

5153
@Override
@@ -54,6 +56,18 @@ public String getDetailsString(String className, Instance instance) {
5456
return getName(instance, "length", "index", "table", "bytes"); // NOI18N
5557
} else if (NAME_MASK.equals(className)) {
5658
return getName(instance, "len", "index", "table", "names"); // NOI18N
59+
} else if (SYMBOL_MASK.equals(className)) {
60+
return DetailsUtils.getInstanceFieldString(instance, "name"); // NI18N
61+
} else if (CLASS_SYM_MASK.equals(className)) {
62+
String name = DetailsUtils.getInstanceFieldString(instance, "name"); // NI18N
63+
64+
if (name == null || name.isEmpty()) {
65+
return DetailsUtils.getInstanceFieldString(instance, "flatname"); // NI18N
66+
} else {
67+
return DetailsUtils.getInstanceFieldString(instance, "fullname"); // NI18N
68+
}
69+
} else if (PACKAGE_SYM_MASK.equals(className)) {
70+
return DetailsUtils.getInstanceFieldString(instance, "fullname"); // NI18N
5771
}
5872
return null;
5973
}

0 commit comments

Comments
 (0)