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 | |
| parent | 80245710126460a4681eb28f333eab5eab3a0cba (diff) | |
FIX bug of reset
| -rw-r--r-- | CMakeLists.txt | 1 | ||||
| -rw-r--r-- | lib/.gitignore | 6 | ||||
| -rw-r--r-- | src/fieldstat.c | 14 |
3 files changed, 12 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ab5f03..2211ca2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,7 @@ set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall) if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "/opt/MESA" CACHE PATH "default install path" FORCE)
endif()
+# set (CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR})
set(CPP_BIN_PATH "/home/chenzizhan/cppcheck/cfg")
find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck HINTS ${CPP_BIN_PATH})
diff --git a/lib/.gitignore b/lib/.gitignore deleted file mode 100644 index 3e978b5..0000000 --- a/lib/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -SI/ -*.log -*.o -*.so -bin/avrule/ -bin/avlog/ 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); |
