Commit d28d5dde9ba936d287308d59c4505219dae270a8
1 parent
9959697d
move generateDescriptor methods to ByteCodeUtilities
Showing
3 changed files
with
73 additions
and
75 deletions
java/common/com/mumfrey/liteloader/transformers/ByteCodeUtilities.java
| @@ -677,4 +677,74 @@ public abstract class ByteCodeUtilities | @@ -677,4 +677,74 @@ public abstract class ByteCodeUtilities | ||
| 677 | } | 677 | } |
| 678 | return null; | 678 | return null; |
| 679 | } | 679 | } |
| 680 | + | ||
| 681 | + /** | ||
| 682 | + * @param returnType | ||
| 683 | + * @param args | ||
| 684 | + */ | ||
| 685 | + public static String generateDescriptor(Type returnType, Object... args) | ||
| 686 | + { | ||
| 687 | + return ByteCodeUtilities.generateDescriptor(Obf.MCP, returnType, args); | ||
| 688 | + } | ||
| 689 | + | ||
| 690 | + /** | ||
| 691 | + * @param returnType | ||
| 692 | + * @param args | ||
| 693 | + */ | ||
| 694 | + public static String generateDescriptor(Obf returnType, Object... args) | ||
| 695 | + { | ||
| 696 | + return ByteCodeUtilities.generateDescriptor(Obf.MCP, returnType, args); | ||
| 697 | + } | ||
| 698 | + | ||
| 699 | + /** | ||
| 700 | + * @param returnType | ||
| 701 | + * @param args | ||
| 702 | + */ | ||
| 703 | + public static String generateDescriptor(String returnType, Object... args) | ||
| 704 | + { | ||
| 705 | + return ByteCodeUtilities.generateDescriptor(Obf.MCP, returnType, args); | ||
| 706 | + } | ||
| 707 | + | ||
| 708 | + /** | ||
| 709 | + * @param obfType | ||
| 710 | + * @param returnType | ||
| 711 | + * @param args | ||
| 712 | + */ | ||
| 713 | + public static String generateDescriptor(int obfType, Object returnType, Object... args) | ||
| 714 | + { | ||
| 715 | + StringBuilder sb = new StringBuilder().append('(');; | ||
| 716 | + | ||
| 717 | + for (Object arg : args) | ||
| 718 | + { | ||
| 719 | + sb.append(ByteCodeUtilities.toDescriptor(obfType, arg)); | ||
| 720 | + } | ||
| 721 | + | ||
| 722 | + return sb.append(')').append(returnType != null ? ByteCodeUtilities.toDescriptor(obfType, returnType) : "V").toString(); | ||
| 723 | + } | ||
| 724 | + | ||
| 725 | + /** | ||
| 726 | + * @param obfType | ||
| 727 | + * @param arg | ||
| 728 | + */ | ||
| 729 | + private static String toDescriptor(int obfType, Object arg) | ||
| 730 | + { | ||
| 731 | + if (arg instanceof Obf) | ||
| 732 | + { | ||
| 733 | + return ((Obf)arg).getDescriptor(obfType); | ||
| 734 | + } | ||
| 735 | + else if (arg instanceof String) | ||
| 736 | + { | ||
| 737 | + return (String)arg; | ||
| 738 | + } | ||
| 739 | + else if (arg instanceof Type) | ||
| 740 | + { | ||
| 741 | + return arg.toString(); | ||
| 742 | + } | ||
| 743 | + else if (arg instanceof Class) | ||
| 744 | + { | ||
| 745 | + return Type.getDescriptor((Class<?>)arg).toString(); | ||
| 746 | + } | ||
| 747 | + | ||
| 748 | + return arg == null ? "" : arg.toString(); | ||
| 749 | + } | ||
| 680 | } | 750 | } |
java/common/com/mumfrey/liteloader/transformers/Callback.java
| @@ -3,8 +3,6 @@ package com.mumfrey.liteloader.transformers; | @@ -3,8 +3,6 @@ package com.mumfrey.liteloader.transformers; | ||
| 3 | import java.util.ArrayList; | 3 | import java.util.ArrayList; |
| 4 | import java.util.List; | 4 | import java.util.List; |
| 5 | 5 | ||
| 6 | -import org.objectweb.asm.Type; | ||
| 7 | - | ||
| 8 | import com.mumfrey.liteloader.core.runtime.Obf; | 6 | import com.mumfrey.liteloader.core.runtime.Obf; |
| 9 | 7 | ||
| 10 | /** | 8 | /** |
| @@ -273,74 +271,4 @@ public class Callback | @@ -273,74 +271,4 @@ public class Callback | ||
| 273 | { | 271 | { |
| 274 | return super.hashCode(); | 272 | return super.hashCode(); |
| 275 | } | 273 | } |
| 276 | - | ||
| 277 | - /** | ||
| 278 | - * @param returnType | ||
| 279 | - * @param args | ||
| 280 | - */ | ||
| 281 | - public static String generateDescriptor(Type returnType, Object... args) | ||
| 282 | - { | ||
| 283 | - return Callback.generateDescriptor(Obf.MCP, returnType, args); | ||
| 284 | - } | ||
| 285 | - | ||
| 286 | - /** | ||
| 287 | - * @param returnType | ||
| 288 | - * @param args | ||
| 289 | - */ | ||
| 290 | - public static String generateDescriptor(Obf returnType, Object... args) | ||
| 291 | - { | ||
| 292 | - return Callback.generateDescriptor(Obf.MCP, returnType, args); | ||
| 293 | - } | ||
| 294 | - | ||
| 295 | - /** | ||
| 296 | - * @param returnType | ||
| 297 | - * @param args | ||
| 298 | - */ | ||
| 299 | - public static String generateDescriptor(String returnType, Object... args) | ||
| 300 | - { | ||
| 301 | - return Callback.generateDescriptor(Obf.MCP, returnType, args); | ||
| 302 | - } | ||
| 303 | - | ||
| 304 | - /** | ||
| 305 | - * @param obfType | ||
| 306 | - * @param returnType | ||
| 307 | - * @param args | ||
| 308 | - */ | ||
| 309 | - public static String generateDescriptor(int obfType, Object returnType, Object... args) | ||
| 310 | - { | ||
| 311 | - StringBuilder sb = new StringBuilder().append('(');; | ||
| 312 | - | ||
| 313 | - for (Object arg : args) | ||
| 314 | - { | ||
| 315 | - sb.append(Callback.toDescriptor(obfType, arg)); | ||
| 316 | - } | ||
| 317 | - | ||
| 318 | - return sb.append(')').append(returnType != null ? Callback.toDescriptor(obfType, returnType) : "V").toString(); | ||
| 319 | - } | ||
| 320 | - | ||
| 321 | - /** | ||
| 322 | - * @param obfType | ||
| 323 | - * @param arg | ||
| 324 | - */ | ||
| 325 | - private static String toDescriptor(int obfType, Object arg) | ||
| 326 | - { | ||
| 327 | - if (arg instanceof Obf) | ||
| 328 | - { | ||
| 329 | - return ((Obf)arg).getDescriptor(obfType); | ||
| 330 | - } | ||
| 331 | - else if (arg instanceof String) | ||
| 332 | - { | ||
| 333 | - return (String)arg; | ||
| 334 | - } | ||
| 335 | - else if (arg instanceof Type) | ||
| 336 | - { | ||
| 337 | - return arg.toString(); | ||
| 338 | - } | ||
| 339 | - else if (arg instanceof Class) | ||
| 340 | - { | ||
| 341 | - return Type.getDescriptor((Class<?>)arg).toString(); | ||
| 342 | - } | ||
| 343 | - | ||
| 344 | - return arg == null ? "" : arg.toString(); | ||
| 345 | - } | ||
| 346 | } | 274 | } |
| 347 | \ No newline at end of file | 275 | \ No newline at end of file |
java/common/com/mumfrey/liteloader/transformers/event/MethodInfo.java
| @@ -3,7 +3,7 @@ package com.mumfrey.liteloader.transformers.event; | @@ -3,7 +3,7 @@ package com.mumfrey.liteloader.transformers.event; | ||
| 3 | import joptsimple.internal.Strings; | 3 | import joptsimple.internal.Strings; |
| 4 | 4 | ||
| 5 | import com.mumfrey.liteloader.core.runtime.Obf; | 5 | import com.mumfrey.liteloader.core.runtime.Obf; |
| 6 | -import com.mumfrey.liteloader.transformers.Callback; | 6 | +import com.mumfrey.liteloader.transformers.ByteCodeUtilities; |
| 7 | 7 | ||
| 8 | /** | 8 | /** |
| 9 | * Encapsulates a method descriptor with varying degrees of accuracy from a simpler owner/method mapping up to | 9 | * Encapsulates a method descriptor with varying degrees of accuracy from a simpler owner/method mapping up to |
| @@ -139,7 +139,7 @@ public class MethodInfo | @@ -139,7 +139,7 @@ public class MethodInfo | ||
| 139 | */ | 139 | */ |
| 140 | public MethodInfo(Obf owner, String method, Object returnType, Object... args) | 140 | public MethodInfo(Obf owner, String method, Object returnType, Object... args) |
| 141 | { | 141 | { |
| 142 | - this(owner.name, owner.obf, method, method, method, Callback.generateDescriptor(Obf.MCP, returnType, args), Callback.generateDescriptor(Obf.OBF, returnType, args)); | 142 | + this(owner.name, owner.obf, method, method, method, ByteCodeUtilities.generateDescriptor(Obf.MCP, returnType, args), ByteCodeUtilities.generateDescriptor(Obf.OBF, returnType, args)); |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | /** | 145 | /** |
| @@ -158,7 +158,7 @@ public class MethodInfo | @@ -158,7 +158,7 @@ public class MethodInfo | ||
| 158 | */ | 158 | */ |
| 159 | public MethodInfo(Obf owner, Obf method, Object returnType, Object... args) | 159 | public MethodInfo(Obf owner, Obf method, Object returnType, Object... args) |
| 160 | { | 160 | { |
| 161 | - this(owner.name, owner.obf, method.name, method.srg, method.obf, Callback.generateDescriptor(Obf.MCP, returnType, args), Callback.generateDescriptor(Obf.OBF, returnType, args)); | 161 | + this(owner.name, owner.obf, method.name, method.srg, method.obf, ByteCodeUtilities.generateDescriptor(Obf.MCP, returnType, args), ByteCodeUtilities.generateDescriptor(Obf.OBF, returnType, args)); |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | /** | 164 | /** |