< prev index next >

src/hotspot/share/runtime/arguments.hpp

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.
--- 1,7 ---
  /*
!  * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

*** 89,10 ***
--- 89,11 ---
    ModulePatchPath(const char* module_name, const char* path);
    ~ModulePatchPath();
  
    inline const char* module_name() const { return _module_name; }
    inline char* path_string() const { return _path->value(); }
+   inline void append_path(const char* path) { _path->append_value(path); }
  };
  
  // Element describing System and User (-Dkey=value flags) defined property.
  //
  // An internal SystemProperty is one that has been removed in

*** 251,10 ***
--- 252,12 ---
    static void set_mode_flags(Mode mode);
  
    // preview features
    static bool _enable_preview;
  
+   static bool _module_patching_disables_cds;
+ 
    // Used to save default settings
    static bool _AlwaysCompileLoopMethods;
    static bool _UseOnStackReplacement;
    static bool _BackgroundCompilation;
    static bool _ClipInlining;

*** 288,11 ***
    // Basic properties are writeable as they operate as "last one wins" and will get overwritten.
    // Numbered properties are never writeable, and always internal.
    static bool create_module_property(const char* prop_name, const char* prop_value, PropertyInternal internal);
    static bool create_numbered_module_property(const char* prop_base_name, const char* prop_value, unsigned int count);
  
!   static int process_patch_mod_option(const char* patch_mod_tail, bool* patch_mod_javabase);
  
    // Aggressive optimization flags.
    static jint set_aggressive_opts_flags();
  
    static jint set_aggressive_heap_flags();
--- 291,11 ---
    // Basic properties are writeable as they operate as "last one wins" and will get overwritten.
    // Numbered properties are never writeable, and always internal.
    static bool create_module_property(const char* prop_name, const char* prop_value, PropertyInternal internal);
    static bool create_numbered_module_property(const char* prop_base_name, const char* prop_value, unsigned int count);
  
!   static int process_patch_mod_option(const char* patch_mod_tail);
  
    // Aggressive optimization flags.
    static jint set_aggressive_opts_flags();
  
    static jint set_aggressive_heap_flags();

*** 323,12 ***
  
    static jint parse_vm_init_args(const JavaVMInitArgs *vm_options_args,
                                   const JavaVMInitArgs *java_tool_options_args,
                                   const JavaVMInitArgs *java_options_args,
                                   const JavaVMInitArgs *cmd_line_args);
!   static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_mod_javabase, JVMFlagOrigin origin);
!   static jint finalize_vm_init_args(bool patch_mod_javabase);
    static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
  
    static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
      return is_bad_option(option, ignore, nullptr);
    }
--- 326,12 ---
  
    static jint parse_vm_init_args(const JavaVMInitArgs *vm_options_args,
                                   const JavaVMInitArgs *java_tool_options_args,
                                   const JavaVMInitArgs *java_options_args,
                                   const JavaVMInitArgs *cmd_line_args);
!   static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, JVMFlagOrigin origin);
!   static jint finalize_vm_init_args();
    static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
  
    static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
      return is_bad_option(option, ignore, nullptr);
    }

*** 478,11 ***
    static void set_java_home(const char *value) { _java_home->set_value(value); }
    static void set_library_path(const char *value) { _java_library_path->set_value(value); }
    static void set_ext_dirs(char *value)     { _ext_dirs = os::strdup_check_oom(value); }
  
    // Set up the underlying pieces of the boot class path
!   static void add_patch_mod_prefix(const char *module_name, const char *path, bool* patch_mod_javabase);
    static void set_boot_class_path(const char *value, bool has_jimage) {
      // During start up, set by os::set_boot_path()
      assert(get_boot_class_path() == nullptr, "Boot class path previously set");
      _boot_class_path->set_value(value);
      _has_jimage = has_jimage;
--- 481,14 ---
    static void set_java_home(const char *value) { _java_home->set_value(value); }
    static void set_library_path(const char *value) { _java_library_path->set_value(value); }
    static void set_ext_dirs(char *value)     { _ext_dirs = os::strdup_check_oom(value); }
  
    // Set up the underlying pieces of the boot class path
!   static void add_patch_mod_prefix(const char *module_name, const char *path, bool allow_append, bool allow_cds);
+   static bool patch_mod_javabase();
+   static bool module_patching_disables_cds() { return _module_patching_disables_cds; }
+   static int finalize_patch_module();
    static void set_boot_class_path(const char *value, bool has_jimage) {
      // During start up, set by os::set_boot_path()
      assert(get_boot_class_path() == nullptr, "Boot class path previously set");
      _boot_class_path->set_value(value);
      _has_jimage = has_jimage;
< prev index next >