summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fieldstat.c3
-rw-r--r--test/test_register_and_reset.cpp1
2 files changed, 3 insertions, 1 deletions
diff --git a/src/fieldstat.c b/src/fieldstat.c
index 6e37a36..5c8235c 100644
--- a/src/fieldstat.c
+++ b/src/fieldstat.c
@@ -229,7 +229,7 @@ void add_cube_to_position(struct fieldstat *instance, struct fs_cube *cube, int
}
instance->cube[cube_id] = cube;
instance->cube_version[cube_id] = 0;
- instance->valid_cube_arr_length++;
+ instance->valid_cube_arr_length = cube_id + 1;
cube_manager_add(instance->shared_tag_cube_manager, cube->key_tag, cube_id);
}
@@ -239,6 +239,7 @@ int fieldstat_append_cube_to_instance(struct fieldstat *instance, struct fs_cube
for (int i = 0; i < instance->valid_cube_arr_length; i++) {
if (instance->cube[i] == NULL) {
instance->cube[i] = cube;
+ cube_manager_add(instance->shared_tag_cube_manager, cube->key_tag, i);
return i;
}
}
diff --git a/test/test_register_and_reset.cpp b/test/test_register_and_reset.cpp
index 63c6d11..820d070 100644
--- a/test/test_register_and_reset.cpp
+++ b/test/test_register_and_reset.cpp
@@ -48,6 +48,7 @@ TEST(test_register, delete_cube_and_register_and_origin_position)
fieldstat_destroy_cube(instance, cube_id);
cube_id = fieldstat_create_cube(instance, &TEST_SHARED_TAG, 1, SAMPLING_MODE_COMPREHENSIVE, 10);
EXPECT_EQ(cube_id, 0);
+ EXPECT_EQ(fieldstat_find_cube(instance, &TEST_SHARED_TAG, 1) , 0);
fieldstat_free(instance);
}