3630 } 3631 } else { 3632 char buffer[256]; 3633 jio_snprintf(buffer, sizeof(buffer), "java.awt.headless=%s", headless_env); 3634 if (!add_property(buffer)) { 3635 return JNI_ENOMEM; 3636 } 3637 } 3638 } 3639 } 3640 3641 if (UseConcMarkSweepGC && FLAG_IS_DEFAULT(UseParNewGC) && !UseParNewGC) { 3642 // CMS can only be used with ParNew 3643 FLAG_SET_ERGO(bool, UseParNewGC, true); 3644 } 3645 3646 if (!check_vm_args_consistency()) { 3647 return JNI_ERR; 3648 } 3649 3650 return JNI_OK; 3651 } 3652 3653 // Helper class for controlling the lifetime of JavaVMInitArgs 3654 // objects. The contents of the JavaVMInitArgs are guaranteed to be 3655 // deleted on the destruction of the ScopedVMInitArgs object. 3656 class ScopedVMInitArgs : public StackObj { 3657 private: 3658 JavaVMInitArgs _args; 3659 char* _container_name; 3660 bool _is_set; 3661 char* _vm_options_file_arg; 3662 3663 public: 3664 ScopedVMInitArgs(const char *container_name) { 3665 _args.version = JNI_VERSION_1_2; 3666 _args.nOptions = 0; 3667 _args.options = NULL; 3668 _args.ignoreUnrecognized = false; 3669 _container_name = (char *)container_name; | 3630 } 3631 } else { 3632 char buffer[256]; 3633 jio_snprintf(buffer, sizeof(buffer), "java.awt.headless=%s", headless_env); 3634 if (!add_property(buffer)) { 3635 return JNI_ENOMEM; 3636 } 3637 } 3638 } 3639 } 3640 3641 if (UseConcMarkSweepGC && FLAG_IS_DEFAULT(UseParNewGC) && !UseParNewGC) { 3642 // CMS can only be used with ParNew 3643 FLAG_SET_ERGO(bool, UseParNewGC, true); 3644 } 3645 3646 if (!check_vm_args_consistency()) { 3647 return JNI_ERR; 3648 } 3649 3650 if (!FLAG_IS_DEFAULT(HeapDir)) { 3651 if (!FLAG_IS_DEFAULT(UseNUMAInterleaving) || !FLAG_IS_DEFAULT(UseNUMA)) { 3652 log_warning(arguments) ("NUMA support depends on the file system when HeapDir option is used.\n"); 3653 } 3654 FLAG_SET_CMDLINE(bool, UseNUMAInterleaving, false); 3655 FLAG_SET_CMDLINE(bool, UseNUMA, false); 3656 } 3657 3658 return JNI_OK; 3659 } 3660 3661 // Helper class for controlling the lifetime of JavaVMInitArgs 3662 // objects. The contents of the JavaVMInitArgs are guaranteed to be 3663 // deleted on the destruction of the ScopedVMInitArgs object. 3664 class ScopedVMInitArgs : public StackObj { 3665 private: 3666 JavaVMInitArgs _args; 3667 char* _container_name; 3668 bool _is_set; 3669 char* _vm_options_file_arg; 3670 3671 public: 3672 ScopedVMInitArgs(const char *container_name) { 3673 _args.version = JNI_VERSION_1_2; 3674 _args.nOptions = 0; 3675 _args.options = NULL; 3676 _args.ignoreUnrecognized = false; 3677 _container_name = (char *)container_name; |