diff options
| author | chenzizhan <[email protected]> | 2023-08-08 15:27:56 +0800 |
|---|---|---|
| committer | chenzizhan <[email protected]> | 2023-08-08 15:27:56 +0800 |
| commit | 27cc0e2c3fee4a7843e59dd8087f7e5ce76ec5f1 (patch) | |
| tree | 92e36bedde43fdd68670f8b8ce71eb431bf62169 /src/fieldstat.c | |
| parent | 80245710126460a4681eb28f333eab5eab3a0cba (diff) | |
FIX bug of reset
Diffstat (limited to 'src/fieldstat.c')
| -rw-r--r-- | src/fieldstat.c | 14 |
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); |
