NANDContentLoader/WiiWAD: Get rid of raw delete and new

This commit is contained in:
Lioncash
2015-12-19 13:46:01 -05:00
parent e638775bc7
commit c78c54c546
8 changed files with 234 additions and 254 deletions

View File

@ -5,6 +5,7 @@
#pragma once
#include <string>
#include <vector>
#include "Common/CommonTypes.h"
@ -17,43 +18,29 @@ class CBlobBigEndianReader;
class WiiWAD
{
public:
WiiWAD(const std::string& _rName);
WiiWAD(const std::string& name);
~WiiWAD();
bool IsValid() const { return m_Valid; }
u32 GetCertificateChainSize() const { return m_CertificateChainSize; }
u32 GetTicketSize() const { return m_TicketSize; }
u32 GetTMDSize() const { return m_TMDSize; }
u32 GetDataAppSize() const { return m_DataAppSize; }
u32 GetFooterSize() const { return m_FooterSize; }
bool IsValid() const { return m_valid; }
u8* GetCertificateChain() const { return m_pCertificateChain; }
u8* GetTicket() const { return m_pTicket; }
u8* GetTMD() const { return m_pTMD; }
u8* GetDataApp() const { return m_pDataApp; }
u8* GetFooter() const { return m_pFooter; }
const std::vector<u8>& GetCertificateChain() const { return m_certificate_chain; }
const std::vector<u8>& GetTicket() const { return m_ticket; }
const std::vector<u8>& GetTMD() const { return m_tmd; }
const std::vector<u8>& GetDataApp() const { return m_data_app; }
const std::vector<u8>& GetFooter() const { return m_footer; }
private:
bool ParseWAD(IBlobReader& reader);
static std::vector<u8> CreateWADEntry(IBlobReader& reader, u32 size, u64 offset);
static bool IsWiiWAD(const CBlobBigEndianReader& reader);
bool m_Valid;
bool m_valid;
u32 m_CertificateChainSize;
u32 m_TicketSize;
u32 m_TMDSize;
u32 m_DataAppSize;
u32 m_FooterSize;
u8* m_pCertificateChain;
u8* m_pTicket;
u8* m_pTMD;
u8* m_pDataApp;
u8* m_pFooter;
u8* CreateWADEntry(DiscIO::IBlobReader& _rReader, u32 _Size, u64 _Offset);
bool ParseWAD(DiscIO::IBlobReader& _rReader);
static bool IsWiiWAD(const DiscIO::CBlobBigEndianReader& reader);
std::vector<u8> m_certificate_chain;
std::vector<u8> m_ticket;
std::vector<u8> m_tmd;
std::vector<u8> m_data_app;
std::vector<u8> m_footer;
};
}