From 26fa4cce667b1833475a7aead68478fd230b9172 Mon Sep 17 00:00:00 2001 From: Carl Niklas Rydberg Date: Sun, 29 Mar 2026 07:04:33 +0200 Subject: [PATCH] Error fix --- .../asl_store_index_fs/asl_store_index_fs.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/adapters/asl_store_index_fs/asl_store_index_fs.c b/src/adapters/asl_store_index_fs/asl_store_index_fs.c index 9f42f5e..bcf2114 100644 --- a/src/adapters/asl_store_index_fs/asl_store_index_fs.c +++ b/src/adapters/asl_store_index_fs/asl_store_index_fs.c @@ -4730,11 +4730,20 @@ amduat_asl_store_error_t amduat_asl_store_index_fs_snapshot_create( return AMDUAT_ASL_STORE_ERR_IO; } - if (!amduat_asl_replay_init(&replay_state)) { - free(index_path); - free(log_path); - free(manifest_path); - return AMDUAT_ASL_STORE_ERR_IO; + { + amduat_asl_snapshot_id_t prev_snap_id; + amduat_asl_log_position_t prev_anchor; + bool prev_loaded = false; + if (amduat_asl_store_index_fs_find_latest_snapshot_id(fs, &prev_snap_id)) { + prev_loaded = amduat_asl_store_index_fs_load_snapshot_replay( + fs->root_path, prev_snap_id, NULL, &replay_state, &prev_anchor); + } + if (!prev_loaded && !amduat_asl_replay_init(&replay_state)) { + free(index_path); + free(log_path); + free(manifest_path); + return AMDUAT_ASL_STORE_ERR_IO; + } } err = amduat_asl_store_index_fs_stream_log_apply(log_path,