Mercurial > hg > graal-jvmci-8
diff src/share/vm/jvmci/jvmciRuntime.cpp @ 22401:31e0737e2fce
added -XX:JVMCIServicesDir for specifying an alternative to <jre>/lib/jvmci/services
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 05 Aug 2015 00:22:17 +0200 |
parents | 4f6caa445b92 |
children | 8abc6030cf1c |
line wrap: on
line diff
--- a/src/share/vm/jvmci/jvmciRuntime.cpp Tue Aug 04 23:46:37 2015 +0200 +++ b/src/share/vm/jvmci/jvmciRuntime.cpp Wed Aug 05 00:22:17 2015 +0200 @@ -975,10 +975,17 @@ objArrayHandle JVMCIRuntime::get_service_impls(KlassHandle serviceKlass, TRAPS) { const char* home = Arguments::get_java_home(); const char* serviceName = serviceKlass->external_name(); - size_t path_len = strlen(home) + strlen("/lib/jvmci/services/") + strlen(serviceName) + 1; - char* path = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, path_len); + char* path; char sep = os::file_separator()[0]; - sprintf(path, "%s%clib%cjvmci%cservices%c%s", home, sep, sep, sep, sep, serviceName); + if (JVMCIServicesDir == NULL) { + size_t path_len = strlen(home) + strlen("/lib/jvmci/services/") + strlen(serviceName) + 1; + path = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, path_len); + sprintf(path, "%s%clib%cjvmci%cservices%c%s", home, sep, sep, sep, sep, serviceName); + } else { + size_t path_len = strlen(JVMCIServicesDir) + strlen(serviceName) + 1; + path = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, path_len); + sprintf(path, "%s%c%s", JVMCIServicesDir, sep, serviceName); + } ServiceParseClosure closure; parse_lines(path, &closure, false);