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);