diff options
author | Luck <git@lucko.me> | 2020-03-06 17:30:37 +0000 |
---|---|---|
committer | Luck <git@lucko.me> | 2020-03-06 17:30:37 +0000 |
commit | f13b8b917a910885f39bf5c0c131b7a4ee3824c9 (patch) | |
tree | 0ec47fb081e41ffdd575169992736f4ba7721e5b | |
parent | 4eff32f040d023e225937c1a59583f1e89b2cac2 (diff) | |
download | spark-f13b8b917a910885f39bf5c0c131b7a4ee3824c9.tar.gz spark-f13b8b917a910885f39bf5c0c131b7a4ee3824c9.tar.bz2 spark-f13b8b917a910885f39bf5c0c131b7a4ee3824c9.zip |
Use ASMs type descriptor utility instead of our own
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java | 4 | ||||
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/util/TypeDescriptors.java | 82 |
2 files changed, 2 insertions, 84 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java index 137a4fe..002ff72 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java +++ b/spark-common/src/main/java/me/lucko/spark/common/heapdump/HeapDumpSummary.java @@ -21,10 +21,10 @@ package me.lucko.spark.common.heapdump; import me.lucko.spark.common.command.sender.CommandSender; -import me.lucko.spark.common.util.TypeDescriptors; import me.lucko.spark.proto.SparkProtos; import me.lucko.spark.proto.SparkProtos.HeapData; import me.lucko.spark.proto.SparkProtos.HeapEntry; +import org.objectweb.asm.Type; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -95,7 +95,7 @@ public final class HeapDumpSummary { Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2)), Long.parseLong(matcher.group(3)), - TypeDescriptors.getJavaType(matcher.group(4)) + Type.getType(matcher.group(4)).getClassName() ); } catch (Exception e) { new IllegalArgumentException("Exception parsing line: " + line, e).printStackTrace(); diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/TypeDescriptors.java b/spark-common/src/main/java/me/lucko/spark/common/util/TypeDescriptors.java deleted file mode 100644 index c827c69..0000000 --- a/spark-common/src/main/java/me/lucko/spark/common/util/TypeDescriptors.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * This file is part of spark. - * - * Copyright (c) lucko (Luck) <luck@lucko.me> - * Copyright (c) contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -package me.lucko.spark.common.util; - -/** - * Utilities for working with Java type descriptors. - */ -public enum TypeDescriptors { - ; - - /** - * Returns the Java type corresponding to the given type descriptor. - * - * @param typeDescriptor a type descriptor. - * @return the Java type corresponding to the given type descriptor. - */ - public static String getJavaType(String typeDescriptor) { - return getJavaType(typeDescriptor.toCharArray(), 0); - } - - private static String getJavaType(char[] buf, int offset) { - int len; - switch (buf[offset]) { - case 'V': - return "void"; - case 'Z': - return "boolean"; - case 'C': - return "char"; - case 'B': - return "byte"; - case 'S': - return "short"; - case 'I': - return "int"; - case 'F': - return "float"; - case 'J': - return "long"; - case 'D': - return "double"; - case '[': // array - len = 1; - while (buf[offset + len] == '[') { - len++; - } - - StringBuilder sb = new StringBuilder(getJavaType(buf, offset + len)); - for (int i = len; i > 0; --i) { - sb.append("[]"); - } - return sb.toString(); - case 'L': // object - len = 1; - while (buf[offset + len] != ';') { - len++; - } - return new String(buf, offset + 1, len - 1); - default: - return new String(buf, offset, buf.length - offset); - } - } - -} |