You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/02/08 01:19:54 UTC
[2/3] groovy git commit: Trivial refactoring: remove duplicated code
of `OperandStack`
Trivial refactoring: remove duplicated code of `OperandStack`
(cherry picked from commit 95c2cf7)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/23661469
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/23661469
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/23661469
Branch: refs/heads/GROOVY_2_6_X
Commit: 23661469bab2f4cc76cbbfd9e502fa264be10c71
Parents: c102ce3
Author: sunlan <su...@apache.org>
Authored: Thu Feb 8 07:50:42 2018 +0800
Committer: sunlan <su...@apache.org>
Committed: Thu Feb 8 09:19:49 2018 +0800
----------------------------------------------------------------------
.../groovy/classgen/asm/OperandStack.java | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/23661469/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java b/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
index f8a494c..105a8b4 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/OperandStack.java
@@ -501,17 +501,9 @@ public class OperandStack {
} else if (asPrimitive) {
pushPrimitiveConstant(mv, value, type);
} else if (value instanceof BigDecimal) {
- String className = BytecodeHelper.getClassInternalName(value.getClass().getName());
- mv.visitTypeInsn(NEW, className);
- mv.visitInsn(DUP);
- mv.visitLdcInsn(value.toString());
- mv.visitMethodInsn(INVOKESPECIAL, className, "<init>", "(Ljava/lang/String;)V", false);
+ newInstance(mv, value);
} else if (value instanceof BigInteger) {
- String className = BytecodeHelper.getClassInternalName(value.getClass().getName());
- mv.visitTypeInsn(NEW, className);
- mv.visitInsn(DUP);
- mv.visitLdcInsn(value.toString());
- mv.visitMethodInsn(INVOKESPECIAL, className, "<init>", "(Ljava/lang/String;)V", false);
+ newInstance(mv, value);
} else if (value instanceof String) {
mv.visitLdcInsn(value);
} else {
@@ -523,6 +515,14 @@ public class OperandStack {
if (boxing) box();
}
+ private static void newInstance(MethodVisitor mv, Object value) {
+ String className = BytecodeHelper.getClassInternalName(value.getClass().getName());
+ mv.visitTypeInsn(NEW, className);
+ mv.visitInsn(DUP);
+ mv.visitLdcInsn(value.toString());
+ mv.visitMethodInsn(INVOKESPECIAL, className, "<init>", "(Ljava/lang/String;)V", false);
+ }
+
private static void pushPrimitiveConstant(final MethodVisitor mv, final Object value, final ClassNode type) {
boolean isInt = ClassHelper.int_TYPE.equals(type);
boolean isShort = ClassHelper.short_TYPE.equals(type);