hotspot/src/share/vm/runtime/arguments.hpp
changeset 13196 6b399731153b
parent 13195 be27e1b6a4b9
child 13963 e5b53c306fb5
equal deleted inserted replaced
13193:1df6cf8d4cd7 13196:6b399731153b
    42 
    42 
    43 class SysClassPath;
    43 class SysClassPath;
    44 
    44 
    45 // Element describing System and User (-Dkey=value flags) defined property.
    45 // Element describing System and User (-Dkey=value flags) defined property.
    46 
    46 
    47 class SystemProperty: public CHeapObj {
    47 class SystemProperty: public CHeapObj<mtInternal> {
    48  private:
    48  private:
    49   char*           _key;
    49   char*           _key;
    50   char*           _value;
    50   char*           _value;
    51   SystemProperty* _next;
    51   SystemProperty* _next;
    52   bool            _writeable;
    52   bool            _writeable;
    61   bool set_value(char *value) {
    61   bool set_value(char *value) {
    62     if (writeable()) {
    62     if (writeable()) {
    63       if (_value != NULL) {
    63       if (_value != NULL) {
    64         FreeHeap(_value);
    64         FreeHeap(_value);
    65       }
    65       }
    66       _value = AllocateHeap(strlen(value)+1);
    66       _value = AllocateHeap(strlen(value)+1, mtInternal);
    67       if (_value != NULL) {
    67       if (_value != NULL) {
    68         strcpy(_value, value);
    68         strcpy(_value, value);
    69       }
    69       }
    70       return true;
    70       return true;
    71     }
    71     }
    78     if (value != NULL) {
    78     if (value != NULL) {
    79       len = strlen(value);
    79       len = strlen(value);
    80       if (_value != NULL) {
    80       if (_value != NULL) {
    81         len += strlen(_value);
    81         len += strlen(_value);
    82       }
    82       }
    83       sp = AllocateHeap(len+2);
    83       sp = AllocateHeap(len+2, mtInternal);
    84       if (sp != NULL) {
    84       if (sp != NULL) {
    85         if (_value != NULL) {
    85         if (_value != NULL) {
    86           strcpy(sp, _value);
    86           strcpy(sp, _value);
    87           strcat(sp, os::path_separator());
    87           strcat(sp, os::path_separator());
    88           strcat(sp, value);
    88           strcat(sp, value);
    98   // Constructor
    98   // Constructor
    99   SystemProperty(const char* key, const char* value, bool writeable) {
    99   SystemProperty(const char* key, const char* value, bool writeable) {
   100     if (key == NULL) {
   100     if (key == NULL) {
   101       _key = NULL;
   101       _key = NULL;
   102     } else {
   102     } else {
   103       _key = AllocateHeap(strlen(key)+1);
   103       _key = AllocateHeap(strlen(key)+1, mtInternal);
   104       strcpy(_key, key);
   104       strcpy(_key, key);
   105     }
   105     }
   106     if (value == NULL) {
   106     if (value == NULL) {
   107       _value = NULL;
   107       _value = NULL;
   108     } else {
   108     } else {
   109       _value = AllocateHeap(strlen(value)+1);
   109       _value = AllocateHeap(strlen(value)+1, mtInternal);
   110       strcpy(_value, value);
   110       strcpy(_value, value);
   111     }
   111     }
   112     _next = NULL;
   112     _next = NULL;
   113     _writeable = writeable;
   113     _writeable = writeable;
   114   }
   114   }
   115 };
   115 };
   116 
   116 
   117 
   117 
   118 // For use by -agentlib, -agentpath and -Xrun
   118 // For use by -agentlib, -agentpath and -Xrun
   119 class AgentLibrary : public CHeapObj {
   119 class AgentLibrary : public CHeapObj<mtInternal> {
   120   friend class AgentLibraryList;
   120   friend class AgentLibraryList;
   121  private:
   121  private:
   122   char*           _name;
   122   char*           _name;
   123   char*           _options;
   123   char*           _options;
   124   void*           _os_lib;
   124   void*           _os_lib;
   134   void set_os_lib(void* os_lib)             { _os_lib = os_lib; }
   134   void set_os_lib(void* os_lib)             { _os_lib = os_lib; }
   135   AgentLibrary* next() const                { return _next; }
   135   AgentLibrary* next() const                { return _next; }
   136 
   136 
   137   // Constructor
   137   // Constructor
   138   AgentLibrary(const char* name, const char* options, bool is_absolute_path, void* os_lib) {
   138   AgentLibrary(const char* name, const char* options, bool is_absolute_path, void* os_lib) {
   139     _name = AllocateHeap(strlen(name)+1);
   139     _name = AllocateHeap(strlen(name)+1, mtInternal);
   140     strcpy(_name, name);
   140     strcpy(_name, name);
   141     if (options == NULL) {
   141     if (options == NULL) {
   142       _options = NULL;
   142       _options = NULL;
   143     } else {
   143     } else {
   144       _options = AllocateHeap(strlen(options)+1);
   144       _options = AllocateHeap(strlen(options)+1, mtInternal);
   145       strcpy(_options, options);
   145       strcpy(_options, options);
   146     }
   146     }
   147     _is_absolute_path = is_absolute_path;
   147     _is_absolute_path = is_absolute_path;
   148     _os_lib = os_lib;
   148     _os_lib = os_lib;
   149     _next = NULL;
   149     _next = NULL;