--- a/hotspot/src/share/vm/runtime/arguments.cpp Tue Mar 03 14:23:18 2009 -0800
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Fri Apr 03 15:59:19 2009 -0700
@@ -852,16 +852,13 @@
FreeHeap(value);
}
return true;
- }
- else if (strcmp(key, "sun.java.command") == 0) {
-
+ } else if (strcmp(key, "sun.java.command") == 0) {
_java_command = value;
// don't add this property to the properties exposed to the java application
FreeHeap(key);
return true;
- }
- else if (strcmp(key, "sun.java.launcher.pid") == 0) {
+ } else if (strcmp(key, "sun.java.launcher.pid") == 0) {
// launcher.pid property is private and is processed
// in process_sun_java_launcher_properties();
// the sun.java.launcher property is passed on to the java application
@@ -870,13 +867,14 @@
FreeHeap(value);
}
return true;
- }
- else if (strcmp(key, "java.vendor.url.bug") == 0) {
+ } else if (strcmp(key, "java.vendor.url.bug") == 0) {
// save it in _java_vendor_url_bug, so JVM fatal error handler can access
// its value without going through the property list or making a Java call.
_java_vendor_url_bug = value;
+ } else if (strcmp(key, "sun.boot.library.path") == 0) {
+ PropertyList_unique_add(&_system_properties, key, value, true);
+ return true;
}
-
// Create new property and add at the end of the list
PropertyList_unique_add(&_system_properties, key, value);
return true;
@@ -895,7 +893,7 @@
// Ensure Agent_OnLoad has the correct initial values.
// This may not be the final mode; mode may change later in onload phase.
PropertyList_unique_add(&_system_properties, "java.vm.info",
- (char*)Abstract_VM_Version::vm_info_string());
+ (char*)Abstract_VM_Version::vm_info_string(), false);
UseInterpreter = true;
UseCompiler = true;
@@ -1376,9 +1374,6 @@
if (AggressiveOpts && FLAG_IS_DEFAULT(DoEscapeAnalysis)) {
FLAG_SET_DEFAULT(DoEscapeAnalysis, true);
}
- if (AggressiveOpts && FLAG_IS_DEFAULT(SpecialArraysEquals)) {
- FLAG_SET_DEFAULT(SpecialArraysEquals, true);
- }
if (AggressiveOpts && FLAG_IS_DEFAULT(BiasedLockingStartupDelay)) {
FLAG_SET_DEFAULT(BiasedLockingStartupDelay, 500);
}
@@ -2777,7 +2772,7 @@
}
// This add maintains unique property key in the list.
-void Arguments::PropertyList_unique_add(SystemProperty** plist, const char* k, char* v) {
+void Arguments::PropertyList_unique_add(SystemProperty** plist, const char* k, char* v, jboolean append) {
if (plist == NULL)
return;
@@ -2785,7 +2780,11 @@
SystemProperty* prop;
for (prop = *plist; prop != NULL; prop = prop->next()) {
if (strcmp(k, prop->key()) == 0) {
- prop->set_value(v);
+ if (append) {
+ prop->append_value(v);
+ } else {
+ prop->set_value(v);
+ }
return;
}
}