< prev index next >

src/share/vm/services/writeableFlags.cpp

Print this page
rev 9019 : [mq]: format.patch


  72   }
  73   switch (error) {
  74     case Flag::MISSING_NAME:
  75       buffer_concat(buffer, "flag name is missing."); break;
  76     case Flag::MISSING_VALUE:
  77       buffer_concat(buffer, "parsing the textual form of the value."); break;
  78     case Flag::NON_WRITABLE:
  79       buffer_concat(buffer, "flag is not writeable."); break;
  80     case Flag::OUT_OF_BOUNDS:
  81       print_flag_error_message_bounds(name, buffer); break;
  82     case Flag::VIOLATES_CONSTRAINT:
  83       buffer_concat(buffer, "value violates its flag's constraint."); break;
  84     case Flag::INVALID_FLAG:
  85       buffer_concat(buffer, "there is no flag with the given name."); break;
  86     case Flag::ERR_OTHER:
  87       buffer_concat(buffer, "other, unspecified error related to setting the flag."); break;
  88     case Flag::SUCCESS:
  89       break;
  90   }
  91 
  92   PRAGMA_DIAG_PUSH
  93   PRAGMA_FORMAT_NONLITERAL_IGNORED_INTERNAL
  94   err_msg.print(buffer);
  95   PRAGMA_DIAG_POP
  96 }
  97 
  98 // set a boolean global flag
  99 Flag::Error WriteableFlags::set_bool_flag(const char* name, const char* arg, Flag::Flags origin, FormatBuffer<80>& err_msg) {
 100   int value = true;
 101 
 102   if (sscanf(arg, "%d", &value)) {
 103     return set_bool_flag(name, value != 0, origin, err_msg);
 104   }
 105   err_msg.print("flag value must be a boolean (1 or 0)");
 106   return Flag::WRONG_FORMAT;
 107 }
 108 
 109 Flag::Error WriteableFlags::set_bool_flag(const char* name, bool value, Flag::Flags origin, FormatBuffer<80>& err_msg) {
 110   Flag::Error err = CommandLineFlags::boolAtPut(name, &value, origin);
 111   print_flag_error_message_if_needed(err, name, err_msg);
 112   return err;
 113 }
 114 
 115 // set a int global flag


 278     return set_int_flag(f->_name, flag_value, origin, err_msg);
 279   } else if (f->is_uint()) {
 280     return set_uint_flag(f->_name, flag_value, origin, err_msg);
 281   } else if (f->is_intx()) {
 282     return set_intx_flag(f->_name, flag_value, origin, err_msg);
 283   } else if (f->is_uintx()) {
 284     return set_uintx_flag(f->_name, flag_value, origin, err_msg);
 285   } else if (f->is_uint64_t()) {
 286     return set_uint64_t_flag(f->_name, flag_value, origin, err_msg);
 287   } else if (f->is_size_t()) {
 288     return set_size_t_flag(f->_name, flag_value, origin, err_msg);
 289   } else if (f->is_ccstr()) {
 290     return set_ccstr_flag(f->_name, flag_value, origin, err_msg);
 291   } else {
 292     ShouldNotReachHere();
 293   }
 294   return Flag::ERR_OTHER;
 295 }
 296 
 297 // a writeable flag setter accepting 'jvalue' values
 298 Flag::Error WriteableFlags::set_flag_from_jvalue(Flag* f, const void* value, Flag::Flags origin, FormatBuffer<80>& err_msg) {

 299   jvalue new_value = *(jvalue*)value;
 300   if (f->is_bool()) {
 301     bool bvalue = (new_value.z == JNI_TRUE ? true : false);
 302     return set_bool_flag(f->_name, bvalue, origin, err_msg);
 303   } else if (f->is_int()) {
 304     int ivalue = (int)new_value.j;
 305     return set_int_flag(f->_name, ivalue, origin, err_msg);
 306   } else if (f->is_uint()) {
 307     uint uvalue = (uint)new_value.j;
 308     return set_uint_flag(f->_name, uvalue, origin, err_msg);
 309   } else if (f->is_intx()) {
 310     intx ivalue = (intx)new_value.j;
 311     return set_intx_flag(f->_name, ivalue, origin, err_msg);
 312   } else if (f->is_uintx()) {
 313     uintx uvalue = (uintx)new_value.j;
 314     return set_uintx_flag(f->_name, uvalue, origin, err_msg);
 315   } else if (f->is_uint64_t()) {
 316     uint64_t uvalue = (uint64_t)new_value.j;
 317     return set_uint64_t_flag(f->_name, uvalue, origin, err_msg);
 318   } else if (f->is_size_t()) {


  72   }
  73   switch (error) {
  74     case Flag::MISSING_NAME:
  75       buffer_concat(buffer, "flag name is missing."); break;
  76     case Flag::MISSING_VALUE:
  77       buffer_concat(buffer, "parsing the textual form of the value."); break;
  78     case Flag::NON_WRITABLE:
  79       buffer_concat(buffer, "flag is not writeable."); break;
  80     case Flag::OUT_OF_BOUNDS:
  81       print_flag_error_message_bounds(name, buffer); break;
  82     case Flag::VIOLATES_CONSTRAINT:
  83       buffer_concat(buffer, "value violates its flag's constraint."); break;
  84     case Flag::INVALID_FLAG:
  85       buffer_concat(buffer, "there is no flag with the given name."); break;
  86     case Flag::ERR_OTHER:
  87       buffer_concat(buffer, "other, unspecified error related to setting the flag."); break;
  88     case Flag::SUCCESS:
  89       break;
  90   }
  91 
  92   err_msg.print("%s", buffer);



  93 }
  94 
  95 // set a boolean global flag
  96 Flag::Error WriteableFlags::set_bool_flag(const char* name, const char* arg, Flag::Flags origin, FormatBuffer<80>& err_msg) {
  97   int value = true;
  98 
  99   if (sscanf(arg, "%d", &value)) {
 100     return set_bool_flag(name, value != 0, origin, err_msg);
 101   }
 102   err_msg.print("flag value must be a boolean (1 or 0)");
 103   return Flag::WRONG_FORMAT;
 104 }
 105 
 106 Flag::Error WriteableFlags::set_bool_flag(const char* name, bool value, Flag::Flags origin, FormatBuffer<80>& err_msg) {
 107   Flag::Error err = CommandLineFlags::boolAtPut(name, &value, origin);
 108   print_flag_error_message_if_needed(err, name, err_msg);
 109   return err;
 110 }
 111 
 112 // set a int global flag


 275     return set_int_flag(f->_name, flag_value, origin, err_msg);
 276   } else if (f->is_uint()) {
 277     return set_uint_flag(f->_name, flag_value, origin, err_msg);
 278   } else if (f->is_intx()) {
 279     return set_intx_flag(f->_name, flag_value, origin, err_msg);
 280   } else if (f->is_uintx()) {
 281     return set_uintx_flag(f->_name, flag_value, origin, err_msg);
 282   } else if (f->is_uint64_t()) {
 283     return set_uint64_t_flag(f->_name, flag_value, origin, err_msg);
 284   } else if (f->is_size_t()) {
 285     return set_size_t_flag(f->_name, flag_value, origin, err_msg);
 286   } else if (f->is_ccstr()) {
 287     return set_ccstr_flag(f->_name, flag_value, origin, err_msg);
 288   } else {
 289     ShouldNotReachHere();
 290   }
 291   return Flag::ERR_OTHER;
 292 }
 293 
 294 // a writeable flag setter accepting 'jvalue' values
 295 Flag::Error WriteableFlags::set_flag_from_jvalue(Flag* f, const void* value, Flag::Flags origin,
 296                                                  FormatBuffer<80>& err_msg) {
 297   jvalue new_value = *(jvalue*)value;
 298   if (f->is_bool()) {
 299     bool bvalue = (new_value.z == JNI_TRUE ? true : false);
 300     return set_bool_flag(f->_name, bvalue, origin, err_msg);
 301   } else if (f->is_int()) {
 302     int ivalue = (int)new_value.j;
 303     return set_int_flag(f->_name, ivalue, origin, err_msg);
 304   } else if (f->is_uint()) {
 305     uint uvalue = (uint)new_value.j;
 306     return set_uint_flag(f->_name, uvalue, origin, err_msg);
 307   } else if (f->is_intx()) {
 308     intx ivalue = (intx)new_value.j;
 309     return set_intx_flag(f->_name, ivalue, origin, err_msg);
 310   } else if (f->is_uintx()) {
 311     uintx uvalue = (uintx)new_value.j;
 312     return set_uintx_flag(f->_name, uvalue, origin, err_msg);
 313   } else if (f->is_uint64_t()) {
 314     uint64_t uvalue = (uint64_t)new_value.j;
 315     return set_uint64_t_flag(f->_name, uvalue, origin, err_msg);
 316   } else if (f->is_size_t()) {
< prev index next >