fs.mitm: Use unique_ptr (fix memory leak along the way)

The previous code was using "delete" rather than "delete[]"
This commit is contained in:
Tony Wasserka 2018-06-16 17:18:06 +02:00
parent e78bd11a05
commit a69a054809

View File

@ -158,19 +158,17 @@ void RomFSBuildContext::MergeRomStorage(IROStorage *storage, RomFSDataSource sou
} }
/* Read tables. */ /* Read tables. */
u8 *dir_table = new u8[header.dir_table_size]; auto dir_table = std::make_unique<u8[]>(header.dir_table_size);
u8 *file_table = new u8[header.file_table_size]; auto file_table = std::make_unique<u8[]>(header.file_table_size);
if (R_FAILED((rc = storage->Read(dir_table, header.dir_table_size, header.dir_table_ofs)))) { if (R_FAILED((rc = storage->Read(dir_table.get(), header.dir_table_size, header.dir_table_ofs)))) {
fatalSimple(rc); fatalSimple(rc);
} }
if (R_FAILED((rc = storage->Read(file_table, header.file_table_size, header.file_table_ofs)))) { if (R_FAILED((rc = storage->Read(file_table.get(), header.file_table_size, header.file_table_ofs)))) {
fatalSimple(rc); fatalSimple(rc);
} }
this->cur_source_type = source; this->cur_source_type = source;
this->VisitDirectory(this->root, 0x0, dir_table, (size_t)header.dir_table_size, file_table, (size_t)header.file_table_size); this->VisitDirectory(this->root, 0x0, dir_table.get(), (size_t)header.dir_table_size, file_table.get(), (size_t)header.file_table_size);
delete dir_table;
delete file_table;
} }
bool RomFSBuildContext::AddDirectory(RomFSBuildDirectoryContext *parent_dir_ctx, RomFSBuildDirectoryContext *dir_ctx, RomFSBuildDirectoryContext **out_dir_ctx) { bool RomFSBuildContext::AddDirectory(RomFSBuildDirectoryContext *parent_dir_ctx, RomFSBuildDirectoryContext *dir_ctx, RomFSBuildDirectoryContext **out_dir_ctx) {