Use unique_ptr for secret_level_table
This commit is contained in:
parent
675e13dbbf
commit
3bf30f9cf7
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue