3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 11:55:51 +00:00

reorder fields of context_params to save memory

plus improve error checking in context_params::set_uint
This commit is contained in:
Nuno Lopes 2021-04-13 18:35:58 +01:00
parent 49906a5a58
commit 524dcd35f9
2 changed files with 7 additions and 16 deletions

View file

@ -40,18 +40,11 @@ void context_params::set_bool(bool & opt, char const * param, char const * value
}
void context_params::set_uint(unsigned & opt, char const * param, char const * value) {
bool is_uint = true;
size_t sz = strlen(value);
for (unsigned i = 0; i < sz; i++) {
if (!(value[i] >= '0' && value[i] <= '9'))
is_uint = false;
}
char *endptr;
long val = strtol(value, &endptr, 10);
opt = static_cast<unsigned>(val);
if (is_uint) {
long val = strtol(value, nullptr, 10);
opt = static_cast<unsigned>(val);
}
else {
if (!*value || *endptr) {
std::stringstream strm;
strm << "invalid value '" << value << "' for unsigned int parameter '" << param << "'";
throw default_exception(strm.str());