src/hotspot/share/jfr/recorder/service/jfrOptionSet.cpp
changeset 59259 127ca611f19b
parent 54603 cb8e16d6ff1e
equal deleted inserted replaced
59258:4c2557ab304e 59259:127ca611f19b
   675     *delimiter = '=';
   675     *delimiter = '=';
   676   }
   676   }
   677   return false;
   677   return false;
   678 }
   678 }
   679 
   679 
   680 static GrowableArray<const char*>* startup_recording_options_array = NULL;
   680 static GrowableArray<const char*>* start_flight_recording_options_array = NULL;
   681 
   681 
   682 bool JfrOptionSet::parse_start_flight_recording_option(const JavaVMOption** option, char* delimiter) {
   682 bool JfrOptionSet::parse_start_flight_recording_option(const JavaVMOption** option, char* delimiter) {
   683   assert(option != NULL, "invariant");
   683   assert(option != NULL, "invariant");
   684   assert(delimiter != NULL, "invariant");
   684   assert(delimiter != NULL, "invariant");
   685   assert((*option)->optionString != NULL, "invariant");
   685   assert((*option)->optionString != NULL, "invariant");
   698     value = delimiter + 1;
   698     value = delimiter + 1;
   699   }
   699   }
   700   assert(value != NULL, "invariant");
   700   assert(value != NULL, "invariant");
   701   const size_t value_length = strlen(value);
   701   const size_t value_length = strlen(value);
   702 
   702 
   703   if (startup_recording_options_array == NULL) {
   703   if (start_flight_recording_options_array == NULL) {
   704     startup_recording_options_array = new (ResourceObj::C_HEAP, mtTracing) GrowableArray<const char*>(8, true, mtTracing);
   704     start_flight_recording_options_array = new (ResourceObj::C_HEAP, mtTracing) GrowableArray<const char*>(8, true, mtTracing);
   705   }
   705   }
   706   assert(startup_recording_options_array != NULL, "invariant");
   706   assert(start_flight_recording_options_array != NULL, "invariant");
   707   char* const startup_value = NEW_C_HEAP_ARRAY(char, value_length + 1, mtTracing);
   707   char* const startup_value = NEW_C_HEAP_ARRAY(char, value_length + 1, mtTracing);
   708   strncpy(startup_value, value, value_length + 1);
   708   strncpy(startup_value, value, value_length + 1);
   709   assert(strncmp(startup_value, value, value_length) == 0, "invariant");
   709   assert(strncmp(startup_value, value, value_length) == 0, "invariant");
   710   startup_recording_options_array->append(startup_value);
   710   start_flight_recording_options_array->append(startup_value);
   711   return false;
   711   return false;
   712 }
   712 }
   713 
   713 
   714 const GrowableArray<const char*>* JfrOptionSet::startup_recording_options() {
   714 const GrowableArray<const char*>* JfrOptionSet::start_flight_recording_options() {
   715   return startup_recording_options_array;
   715   return start_flight_recording_options_array;
   716 }
   716 }
   717 
   717 
   718 void JfrOptionSet::release_startup_recording_options() {
   718 void JfrOptionSet::release_start_flight_recording_options() {
   719   if (startup_recording_options_array != NULL) {
   719   if (start_flight_recording_options_array != NULL) {
   720     const int length = startup_recording_options_array->length();
   720     const int length = start_flight_recording_options_array->length();
   721     for (int i = 0; i < length; ++i) {
   721     for (int i = 0; i < length; ++i) {
   722       FREE_C_HEAP_ARRAY(char, startup_recording_options_array->at(i));
   722       FREE_C_HEAP_ARRAY(char, start_flight_recording_options_array->at(i));
   723     }
   723     }
   724     delete startup_recording_options_array;
   724     delete start_flight_recording_options_array;
   725     startup_recording_options_array = NULL;
   725     start_flight_recording_options_array = NULL;
   726   }
   726   }
   727 }
   727 }