From 3bf30f9cf7128fe71801aa9b7973b3c034ae3561 Mon Sep 17 00:00:00 2001 From: Kp Date: Thu, 24 Jul 2014 02:30:18 +0000 Subject: [PATCH] Use unique_ptr for secret_level_table --- common/main/mission.h | 2 +- similar/main/mission.cpp | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/common/main/mission.h b/common/main/mission.h index b399b680b..4552bf35b 100644 --- a/common/main/mission.h +++ b/common/main/mission.h @@ -82,7 +82,7 @@ struct Mission { char *path; // relative file path d_fname briefing_text_filename; // name of briefing file d_fname ending_text_filename; // name of ending file - ubyte *secret_level_table; // originating level no for each secret level + std::unique_ptr secret_level_table; // originating level no for each secret level // arrays of names of the level files d_fname *level_names; d_fname *secret_level_names; diff --git a/similar/main/mission.cpp b/similar/main/mission.cpp index 11155eba2..48abf8281 100644 --- a/similar/main/mission.cpp +++ b/similar/main/mission.cpp @@ -91,7 +91,7 @@ static int allocate_levels(void) if (!Secret_level_names) return 0; - MALLOC(Secret_level_table, ubyte, N_secret_levels); + Secret_level_table.reset(new ubyte[N_secret_levels]); if (!Secret_level_table) return 0; } @@ -611,11 +611,6 @@ void free_mission(std::unique_ptr Current_mission) d_free(Level_names); if(Secret_level_names) d_free(Secret_level_names); - if(Secret_level_table) - d_free(Secret_level_table); -#if defined(DXX_BUILD_DESCENT_II) - Current_mission->alternate_ham_file.reset(); -#endif } } @@ -784,7 +779,7 @@ static int load_mission(mle *mission) Last_secret_level = 0; Briefing_text_filename = {}; Ending_text_filename = {}; - Secret_level_table = NULL; + Secret_level_table.reset(); Level_names = NULL; Secret_level_names = NULL; @@ -940,7 +935,7 @@ static int load_mission(mle *mission) return 0; } - MALLOC(Secret_level_table, ubyte, N_secret_levels); + Secret_level_table.reset(new ubyte[N_secret_levels]); if (!Secret_level_table) { Current_mission.reset();