Exemple #1
0
bool CommandLineFlags::uintxAt(char* name, size_t len, uintx* value) {
  Flag* result = Flag::find_flag(name, len);
  if (result == NULL) return false;
  if (!result->is_uintx()) return false;
  *value = result->get_uintx();
  return true;
}
Exemple #2
0
Flag::Error CommandLineFlags::uintxAt(const char* name, size_t len, uintx* value, bool allow_locked, bool return_flag) {
  Flag* result = Flag::find_flag(name, len, allow_locked, return_flag);
  if (result == NULL) return Flag::INVALID_FLAG;
  if (!result->is_uintx()) return Flag::WRONG_FORMAT;
  *value = result->get_uintx();
  return Flag::SUCCESS;
}
void CommandLineFlagsEx::uintxAtPut(CommandLineFlagWithType flag, uintx value, Flag::Flags origin) {
  Flag* faddr = address_of_flag(flag);
  guarantee(faddr != NULL && faddr->is_uintx(), "wrong flag type");
  trace_flag_changed<EventUnsignedLongFlagChanged, u8>(faddr->_name, faddr->get_uintx(), value, origin);
  faddr->set_uintx(value);
  faddr->set_origin(origin);
}
Exemple #4
0
bool CommandLineFlags::uintxAtPut(char* name, size_t len, uintx* value, FlagValueOrigin origin) {
  Flag* result = Flag::find_flag(name, len);
  if (result == NULL) return false;
  if (!result->is_uintx()) return false;
  uintx old_value = result->get_uintx();
  result->set_uintx(*value);
  *value = old_value;
  result->origin = origin;
  return true;
}
bool CommandLineFlags::uintxAtPut(char* name, size_t len, uintx* value, Flag::Flags origin) {
  Flag* result = Flag::find_flag(name, len);
  if (result == NULL) return false;
  if (!result->is_uintx()) return false;
  uintx old_value = result->get_uintx();
  trace_flag_changed<EventUnsignedLongFlagChanged, u8>(name, old_value, *value, origin);
  result->set_uintx(*value);
  *value = old_value;
  result->set_origin(origin);
  return true;
}
bool CommandLineFlagRangeList::check_ranges() {
    // Check ranges.
    bool status = true;
    for (int i=0; i<length(); i++) {
        CommandLineFlagRange* range = at(i);
        const char* name = range->name();
        Flag* flag = Flag::find_flag(name, strlen(name), true, true);
        // We must check for NULL here as lp64_product flags on 32 bit architecture
        // can generate range check (despite that they are declared as constants),
        // but they will not be returned by Flag::find_flag()
        if (flag != NULL) {
            if (flag->is_int()) {
                int value = flag->get_int();
                if (range->check_int(value, true) != Flag::SUCCESS) status = false;
            } else if (flag->is_uint()) {
                uint value = flag->get_uint();
                if (range->check_uint(value, true) != Flag::SUCCESS) status = false;
            } else if (flag->is_intx()) {
                intx value = flag->get_intx();
                if (range->check_intx(value, true) != Flag::SUCCESS) status = false;
            } else if (flag->is_uintx()) {
                uintx value = flag->get_uintx();
                if (range->check_uintx(value, true) != Flag::SUCCESS) status = false;
            } else if (flag->is_uint64_t()) {
                uint64_t value = flag->get_uint64_t();
                if (range->check_uint64_t(value, true) != Flag::SUCCESS) status = false;
            } else if (flag->is_size_t()) {
                size_t value = flag->get_size_t();
                if (range->check_size_t(value, true) != Flag::SUCCESS) status = false;
            } else if (flag->is_double()) {
                double value = flag->get_double();
                if (range->check_double(value, true) != Flag::SUCCESS) status = false;
            }
        }
    }
    return status;
}