mirror of
https://github.com/GerbilSoft/rvthtool.git
synced 2025-06-18 19:45:35 -04:00
[librvth] RvtH: Change m_nhcdHeader to an std::unique_ptr<>.
Reduces manual memory management shenanigans.
This commit is contained in:
parent
f9f3834711
commit
227abaec5a
@ -268,18 +268,17 @@ int RvtH::openHDD(RefFile *f_img)
|
||||
size_t size;
|
||||
|
||||
// Check the bank table header.
|
||||
m_nhcdHeader = new NHCD_BankTable_Header;
|
||||
m_nhcdHeader.reset(new NHCD_BankTable_Header);
|
||||
size = f_img->seekoAndRead(LBA_TO_BYTES(NHCD_BANKTABLE_ADDRESS_LBA), SEEK_SET,
|
||||
m_nhcdHeader, 1, sizeof(*m_nhcdHeader));
|
||||
if (size != sizeof(*m_nhcdHeader)) {
|
||||
m_nhcdHeader.get(), 1, sizeof(NHCD_BankTable_Header));
|
||||
if (size != sizeof(NHCD_BankTable_Header)) {
|
||||
// Short read.
|
||||
err = errno;
|
||||
if (err == 0) {
|
||||
err = EIO;
|
||||
}
|
||||
ret = -err;
|
||||
delete m_nhcdHeader;
|
||||
m_nhcdHeader = nullptr;
|
||||
m_nhcdHeader.reset();
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@ -471,7 +470,6 @@ fail:
|
||||
*/
|
||||
RvtH::RvtH(const TCHAR *filename, int *pErr)
|
||||
: m_file(nullptr)
|
||||
, m_nhcdHeader(nullptr)
|
||||
, m_bankCount(0)
|
||||
, m_imageType(RVTH_ImageType_Unknown)
|
||||
, m_NHCD_status(NHCD_STATUS_UNKNOWN)
|
||||
@ -534,9 +532,6 @@ RvtH::~RvtH()
|
||||
// Free the bank entries array.
|
||||
free(m_entries);
|
||||
|
||||
// Delete the NHCD bank table header.
|
||||
delete m_nhcdHeader;
|
||||
|
||||
// Clear the main file reference.
|
||||
if (m_file) {
|
||||
m_file->unref();
|
||||
@ -568,7 +563,7 @@ bool RvtH::isHDD(void) const
|
||||
*/
|
||||
NHCD_BankTable_Header *RvtH::nhcd_header(void) const
|
||||
{
|
||||
return m_nhcdHeader;
|
||||
return m_nhcdHeader.get();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -183,6 +183,9 @@ typedef bool (*RvtH_Verify_Progress_Callback)(const RvtH_Verify_Progress_State *
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
// C++ STL classes
|
||||
#include <memory>
|
||||
|
||||
/** Main class **/
|
||||
|
||||
class RvtH {
|
||||
@ -508,7 +511,7 @@ private:
|
||||
|
||||
// NHCD bank table header
|
||||
// NOTE: This will be nullptr for e.g. GCM disc images.
|
||||
NHCD_BankTable_Header *m_nhcdHeader;
|
||||
std::unique_ptr<NHCD_BankTable_Header> m_nhcdHeader;
|
||||
|
||||
// Number of banks.
|
||||
// - RVT-H system or disk image: 8
|
||||
|
Loading…
Reference in New Issue
Block a user