diff options
Diffstat (limited to 'src/jdk/nashorn/internal/runtime/Context.java')
-rw-r--r-- | src/jdk/nashorn/internal/runtime/Context.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/jdk/nashorn/internal/runtime/Context.java b/src/jdk/nashorn/internal/runtime/Context.java index c144d363..aa3306a4 100644 --- a/src/jdk/nashorn/internal/runtime/Context.java +++ b/src/jdk/nashorn/internal/runtime/Context.java @@ -29,6 +29,7 @@ import static jdk.nashorn.internal.codegen.CompilerConstants.CONSTANTS; import static jdk.nashorn.internal.codegen.CompilerConstants.CREATE_PROGRAM_FUNCTION; import static jdk.nashorn.internal.codegen.CompilerConstants.SOURCE; import static jdk.nashorn.internal.codegen.CompilerConstants.STRICT_MODE; +import static jdk.nashorn.internal.runtime.CodeStore.newCodeStore; import static jdk.nashorn.internal.runtime.ECMAErrors.typeError; import static jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED; import static jdk.nashorn.internal.runtime.Source.sourceFor; @@ -200,14 +201,14 @@ public final class Context { final Map<String,byte[]> classBytes, final Map<Integer, FunctionInitializer> initializers, final Object[] constants, final int compilationId) { if (context.codeStore != null) { - context.codeStore.storeScript(cacheKey, source, mainClassName, classBytes, initializers, constants, compilationId); + context.codeStore.store(cacheKey, source, mainClassName, classBytes, initializers, constants, compilationId); } } @Override public StoredScript loadScript(final Source source, final String functionKey) { if (context.codeStore != null) { - return context.codeStore.loadScript(source, functionKey); + return context.codeStore.load(source, functionKey); } return null; } @@ -463,8 +464,7 @@ public final class Context { if (env._persistent_cache) { try { - final String cacheDir = Options.getStringProperty("nashorn.persistent.code.cache", "nashorn_code_cache"); - codeStore = new CodeStore(this, cacheDir); + codeStore = newCodeStore(this); } catch (final IOException e) { throw new RuntimeException("Error initializing code cache", e); } @@ -1117,7 +1117,7 @@ public final class Context { final String cacheKey = useCodeStore ? CodeStore.getCacheKey(0, null) : null; if (useCodeStore) { - storedScript = codeStore.loadScript(source, cacheKey); + storedScript = codeStore.load(source, cacheKey); } if (storedScript == null) { @@ -1194,15 +1194,16 @@ public final class Context { private static Class<?> install(final StoredScript storedScript, final Source source, final CodeInstaller<ScriptEnvironment> installer) { final Map<String, Class<?>> installedClasses = new HashMap<>(); + final Map<String, byte[]> classBytes = storedScript.getClassBytes(); final Object[] constants = storedScript.getConstants(); final String mainClassName = storedScript.getMainClassName(); - final byte[] mainClassBytes = storedScript.getClassBytes().get(mainClassName); + final byte[] mainClassBytes = classBytes.get(mainClassName); final Class<?> mainClass = installer.install(mainClassName, mainClassBytes); final Map<Integer, FunctionInitializer> initialzers = storedScript.getInitializers(); installedClasses.put(mainClassName, mainClass); - for (final Map.Entry<String, byte[]> entry : storedScript.getClassBytes().entrySet()) { + for (final Map.Entry<String, byte[]> entry : classBytes.entrySet()) { final String className = entry.getKey(); if (className.equals(mainClassName)) { continue; |