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)) { 3652 log_warning(arguments) ("NUMAInterleaving is not supported when HeapDir option is used.\n"); 3653 } 3654 FLAG_SET_CMDLINE(bool, UseNUMAInterleaving, false); 3655 } 3656 3657 return JNI_OK; 3658 } 3659 3660 // Helper class for controlling the lifetime of JavaVMInitArgs 3661 // objects. The contents of the JavaVMInitArgs are guaranteed to be 3662 // deleted on the destruction of the ScopedVMInitArgs object. 3663 class ScopedVMInitArgs : public StackObj { 3664 private: 3665 JavaVMInitArgs _args; 3666 char* _container_name; 3667 bool _is_set; 3668 char* _vm_options_file_arg; 3669 3670 public: 3671 ScopedVMInitArgs(const char *container_name) { 3672 _args.version = JNI_VERSION_1_2; 3673 _args.nOptions = 0; 3674 _args.options = NULL; 3675 _args.ignoreUnrecognized = false; 3676 _container_name = (char *)container_name; |