You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2017/05/10 22:26:45 UTC
[17/50] [abbrv] groovy git commit: Minor refactoring
Minor refactoring
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/bd353a68
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/bd353a68
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/bd353a68
Branch: refs/heads/parrot
Commit: bd353a684a2c673779f79c7a18911970e24cff4d
Parents: b469cbb
Author: sunlan <su...@apache.org>
Authored: Sat May 6 01:44:14 2017 +0800
Committer: paulk <pa...@asert.com.au>
Committed: Thu May 11 08:09:11 2017 +1000
----------------------------------------------------------------------
.../groovy/classgen/asm/WriterController.java | 24 ++++++++------------
.../groovy/control/CompilerConfiguration.java | 12 ++++++++++
2 files changed, 22 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/bd353a68/src/main/org/codehaus/groovy/classgen/asm/WriterController.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/classgen/asm/WriterController.java b/src/main/org/codehaus/groovy/classgen/asm/WriterController.java
index e4cfdbe..4eec57e 100644
--- a/src/main/org/codehaus/groovy/classgen/asm/WriterController.java
+++ b/src/main/org/codehaus/groovy/classgen/asm/WriterController.java
@@ -19,6 +19,8 @@
package org.codehaus.groovy.classgen.asm;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.codehaus.groovy.GroovyBugError;
@@ -39,6 +41,8 @@ import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
+import static org.codehaus.groovy.control.CompilerConfiguration.JDK_TO_BYTECODE_VERSION_MAP;
+
public class WriterController {
private AsmClassGenerator acg;
@@ -133,24 +137,16 @@ public class WriterController {
if (CompilerConfiguration.JDK7.equals(targetBytecode)) {
return Opcodes.V1_7;
}
+
return Opcodes.V1_8;
} else {
- if (CompilerConfiguration.JDK4.equals(targetBytecode)) {
- return Opcodes.V1_4;
- }
- if (CompilerConfiguration.JDK5.equals(targetBytecode)) {
- return Opcodes.V1_5;
- }
- if (CompilerConfiguration.JDK6.equals(targetBytecode)) {
- return Opcodes.V1_6;
- }
- if (CompilerConfiguration.JDK7.equals(targetBytecode)) {
- return Opcodes.V1_7;
- }
- if (CompilerConfiguration.JDK8.equals(targetBytecode)) {
- return Opcodes.V1_8;
+ Integer bytecodeVersion = JDK_TO_BYTECODE_VERSION_MAP.get(targetBytecode);
+
+ if (null != bytecodeVersion) {
+ return bytecodeVersion;
}
}
+
throw new GroovyBugError("Bytecode version ["+targetBytecode+"] is not supported by the compiler");
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/bd353a68/src/main/org/codehaus/groovy/control/CompilerConfiguration.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/org/codehaus/groovy/control/CompilerConfiguration.java
index 1ee26d3..4278b55 100644
--- a/src/main/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -21,6 +21,7 @@ package org.codehaus.groovy.control;
import org.codehaus.groovy.control.customizers.CompilationCustomizer;
import org.codehaus.groovy.control.io.NullWriter;
import org.codehaus.groovy.control.messages.WarningMessage;
+import org.objectweb.asm.Opcodes;
import java.io.File;
import java.io.PrintWriter;
@@ -60,6 +61,17 @@ public class CompilerConfiguration {
/** An array of the valid targetBytecode values **/
public static final String[] ALLOWED_JDKS = { JDK4, JDK5, JDK6, JDK7, JDK8 };
+ /**
+ * JDK version to bytecode version mapping
+ */
+ public static final Map<String, Integer> JDK_TO_BYTECODE_VERSION_MAP = Collections.unmodifiableMap(new HashMap<String, Integer>() {{
+ put(JDK4, Opcodes.V1_4);
+ put(JDK5, Opcodes.V1_5);
+ put(JDK6, Opcodes.V1_6);
+ put(JDK7, Opcodes.V1_7);
+ put(JDK8, Opcodes.V1_8);
+ }});
+
// Just call getVMVersion() once.
public static final String currentJVMVersion = getVMVersion();