summaryrefslogtreecommitdiff
path: root/src/fieldstat.c
diff options
context:
space:
mode:
authorchenzizhan <[email protected]>2023-08-08 15:27:56 +0800
committerchenzizhan <[email protected]>2023-08-08 15:27:56 +0800
commit27cc0e2c3fee4a7843e59dd8087f7e5ce76ec5f1 (patch)
tree92e36bedde43fdd68670f8b8ce71eb431bf62169 /src/fieldstat.c
parent80245710126460a4681eb28f333eab5eab3a0cba (diff)
FIX bug of reset
Diffstat (limited to 'src/fieldstat.c')
-rw-r--r--src/fieldstat.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/fieldstat.c b/src/fieldstat.c
index 1b9eca2..97759e9 100644
--- a/src/fieldstat.c
+++ b/src/fieldstat.c
@@ -80,11 +80,15 @@ void fieldstat_reset(struct fieldstat *instance)
return;
}
for (size_t i = 0; i < instance->valid_cube_arr_length; i++) {
- for (size_t j = 0; j < instance->cube[i]->n_metric; j++) {
- metric_reset(instance->cube[i]->metrics[j]);
+ struct fs_cube *cube = instance->cube[i];
+ if (cube == NULL) {
+ continue;
+ }
+ for (size_t j = 0; j < cube->n_metric; j++) {
+ metric_reset(cube->metrics[j]);
}
- cell_manager_reset(instance->cube[i]->cell_manager);
+ cell_manager_reset(cube->cell_manager);
}
instance->cell_version++;
}
@@ -1027,6 +1031,10 @@ struct fieldstat *fieldstat_dup(const struct fieldstat *instance)
void fieldstat_cube_read_cell(const struct fieldstat *instance, int cube_id, int **cell_ids, struct fieldstat_tag_list **tag_list, size_t *n_cell)
{
+ if (cube_id >= instance->max_n_cube) {
+ printf("ERR: fieldstat_cube_read_cell cube id is invalid, cube id: %d\n", cube_id);
+ return;
+ }
const struct fs_cube *cube = instance->cube[cube_id];
if (cube == NULL) {
printf("ERR: fieldstat_cube_read_cell cube is not registered yet, cube id: %d\n", cube_id);