Преглед на файлове

修复`asm`分支不支持`DEBUG`的`BUG`

mxd преди 3 години
родител
ревизия
f6666b5d91
променени са 1 файла, в които са добавени 10 реда и са изтрити 1 реда
  1. 10 1
      magic-api/src/main/java/org/ssssssss/magicapi/script/ScriptManager.java

+ 10 - 1
magic-api/src/main/java/org/ssssssss/magicapi/script/ScriptManager.java

@@ -6,8 +6,10 @@ import org.ssssssss.magicapi.utils.MD5Utils;
 import org.ssssssss.script.MagicScript;
 import org.ssssssss.script.MagicScriptContext;
 import org.ssssssss.script.MagicScriptDebugContext;
+import org.ssssssss.script.reflection.JavaReflection;
 
 import javax.script.*;
+import java.util.Objects;
 
 public class ScriptManager {
 
@@ -19,6 +21,13 @@ public class ScriptManager {
 	 */
 	private static final DefaultSqlCache compileCache = new DefaultSqlCache(500, -1);
 
+	private static final String DEBUG_MARK;
+
+	static {
+		// TODO 兼容asm处理,切换后删除。
+		DEBUG_MARK = Objects.toString(JavaReflection.getFieldValue(MagicScript.class, JavaReflection.getField(MagicScript.class, "DEBUG_MARK")),"");
+	}
+
 	/**
 	 * 编译脚本
 	 *
@@ -54,7 +63,7 @@ public class ScriptManager {
 		simpleScriptContext.setAttribute(MagicScript.CONTEXT_ROOT, context, ScriptContext.ENGINE_SCOPE);
 		// 执行脚本
 		try {
-			return compile("MagicScript", (context instanceof MagicScriptDebugContext ? MagicScript.DEBUG_MARK: "") +script).eval(simpleScriptContext);
+			return compile("MagicScript", (context instanceof MagicScriptDebugContext ? DEBUG_MARK: "") +script).eval(simpleScriptContext);
 		} catch (ScriptException e) {
 			throw new MagicAPIException(e.getMessage(), e);
 		} finally {