Free bus statements from the configuration file as soon as we are done

with them.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5645 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare committed 2009-02-15 17:18:01 +00:00
1 parent 16dbc995ec
commit d5bead6025
2 files changed
+30 -18

No files matched your search

+29 -18
View File
@@ -61,18 +61,42 @@ static int sensors_parse(void)
return res;
}
static void free_bus(sensors_bus *bus)
{
free(bus->adapter);
}
static void free_config_busses(void)
{
int i;
for (i = 0; i < sensors_config_busses_count; i++)
free_bus(&sensors_config_busses[i]);
free(sensors_config_busses);
sensors_config_busses = NULL;
sensors_config_busses_count = sensors_config_busses_max = 0;
}
static int parse_config(FILE *input)
{
int err;
if (sensors_scanner_init(input))
return -SENSORS_ERR_PARSE;
if (sensors_scanner_init(input)) {
err = -SENSORS_ERR_PARSE;
goto exit_cleanup;
}
err = sensors_parse();
sensors_scanner_exit();
if (err)
return -SENSORS_ERR_PARSE;
if (err) {
err = -SENSORS_ERR_PARSE;
goto exit_cleanup;
}
return 0;
err = sensors_substitute_busses();
exit_cleanup:
free_config_busses();
return err;
}
int sensors_init(FILE *input)
@@ -107,8 +131,6 @@ int sensors_init(FILE *input)
}
}
if ((res = sensors_substitute_busses()))
goto exit_cleanup;
return 0;
exit_cleanup:
@@ -134,11 +156,6 @@ static void free_chip_features(sensors_chip_features *features)
free(features->feature);
}
static void free_bus(sensors_bus *bus)
{
free(bus->adapter);
}
static void free_label(sensors_label *label)
{
free(label->name);
@@ -218,12 +235,6 @@ void sensors_cleanup(void)
sensors_proc_chips = NULL;
sensors_proc_chips_count = sensors_proc_chips_max = 0;
for (i = 0; i < sensors_config_busses_count; i++)
free_bus(&sensors_config_busses[i]);
free(sensors_config_busses);
sensors_config_busses = NULL;
sensors_config_busses_count = sensors_config_busses_max = 0;
for (i = 0; i < sensors_config_chips_count; i++)
free_chip(&sensors_config_chips[i]);
free(sensors_config_chips);