Use unique_ptr for secret_level_table

This commit is contained in:
Kp 2014-07-24 02:30:18 +00:00
parent 675e13dbbf
commit 3bf30f9cf7
2 changed files with 4 additions and 9 deletions

View file

@ -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<ubyte[]> 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;

View file

@ -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<Mission> 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();