- power_range_watts_list.push_back(power_range(
- xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 0, char*),
- bprintf("Invalid min value for pstate %d on host %s: %%s", i, host->name().c_str())),
- xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 1, char*),
- bprintf("Invalid min value for pstate %d on host %s: %%s", i, host->name().c_str()))
- ));
+ char *msg_idle = bprintf("Invalid idle value for pstate %d on host %s: %%s", i, host->name().c_str());
+ char *msg_min = bprintf("Invalid min value for pstate %d on host %s: %%s", i, host->name().c_str());
+ char *msg_max = bprintf("Invalid max value for pstate %d on host %s: %%s", i, host->name().c_str());
+ PowerRange range(
+ xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 0, char*), msg_idle),
+ xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 1, char*), msg_min),
+ xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 2, char*), msg_max)
+ );
+ power_range_watts_list.push_back(range);
+ xbt_free(msg_min);
+ xbt_free(msg_max);