summaryrefslogtreecommitdiff
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
parent80245710126460a4681eb28f333eab5eab3a0cba (diff)
FIX bug of reset
-rw-r--r--CMakeLists.txt1
-rw-r--r--lib/.gitignore6
-rw-r--r--src/fieldstat.c14
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);