mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 14:51:15 +00:00
remove casts on read, add size assert
This commit is contained in:
parent
fd4959d516
commit
66a6b3bab2
@ -1,4 +1,7 @@
|
||||
#include "mxioinfo.h"
|
||||
#include "decomp.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(MXIOINFO, sizeof(MMIOINFO));
|
||||
|
||||
// OFFSET: LEGO1 0x100cc800
|
||||
MXIOINFO::MXIOINFO()
|
||||
@ -24,8 +27,7 @@ MxU16 MXIOINFO::Open(const char *filename, DWORD fdwOpen)
|
||||
m_lDiskOffset = 0;
|
||||
|
||||
// Cast of fdWOpen to u16 forces the `movzx` instruction
|
||||
//m_hmmio = OpenFile(filename, &_unused, (unsigned short)fdwOpen);
|
||||
m_hmmio = OpenFile(filename, &_unused, fdwOpen);
|
||||
m_hmmio = OpenFile(filename, &_unused, (MxU16)fdwOpen);
|
||||
|
||||
if (m_hmmio != HFILE_ERROR) {
|
||||
m_dwFlags = fdwOpen;
|
||||
@ -79,7 +81,7 @@ MxU16 MXIOINFO::Close(MxLong arg)
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100cc930
|
||||
MxLong MXIOINFO::Read(HPSTR pch, LONG cch)
|
||||
MxLong MXIOINFO::Read(void *pch, LONG cch)
|
||||
{
|
||||
MxLong bytes_read = 0;
|
||||
|
||||
@ -365,7 +367,7 @@ MxU16 MXIOINFO::Descend(MMCKINFO *pmmcki, const MMCKINFO *pmmckiParent, unsigned
|
||||
|
||||
if (!fuDescend) {
|
||||
pmmcki->dwFlags = 0;
|
||||
if (Read((char *)pmmcki, 8) != 8) {
|
||||
if (Read(pmmcki, 8) != 8) {
|
||||
result = MMIOERR_CANNOTREAD;
|
||||
} else {
|
||||
if (m_pchBuffer) {
|
||||
@ -375,7 +377,7 @@ MxU16 MXIOINFO::Descend(MMCKINFO *pmmcki, const MMCKINFO *pmmckiParent, unsigned
|
||||
}
|
||||
|
||||
if (pmmcki->ckid == FOURCC_RIFF || pmmcki->ckid == FOURCC_LIST) {
|
||||
if (Read((char *)&pmmcki->fccType, 4) != 4) {
|
||||
if (Read(&pmmcki->fccType, 4) != 4) {
|
||||
result = MMIOERR_CANNOTREAD;
|
||||
}
|
||||
}
|
||||
@ -393,7 +395,7 @@ MxU16 MXIOINFO::Descend(MMCKINFO *pmmcki, const MMCKINFO *pmmckiParent, unsigned
|
||||
|
||||
// This loop is... something
|
||||
do {
|
||||
if (Read((char *)&tmp, 8) != 8) {
|
||||
if (Read(&tmp, 8) != 8) {
|
||||
// If the first read fails, report read error. Else EOF.
|
||||
result = read_ok ? MMIOERR_CHUNKNOTFOUND : MMIOERR_CANNOTREAD;
|
||||
running = FALSE;
|
||||
@ -411,7 +413,7 @@ MxU16 MXIOINFO::Descend(MMCKINFO *pmmcki, const MMCKINFO *pmmckiParent, unsigned
|
||||
} else {
|
||||
if ((fuDescend == MMIO_FINDLIST && tmp.ckid == FOURCC_LIST) ||
|
||||
(fuDescend == MMIO_FINDRIFF && tmp.ckid == FOURCC_RIFF)) {
|
||||
if (Read((char *)&tmp.fccType, 4) != 4) {
|
||||
if (Read(&tmp.fccType, 4) != 4) {
|
||||
result = MMIOERR_CANNOTREAD;
|
||||
} else {
|
||||
if (pmmcki->fccType != tmp.fccType)
|
||||
|
||||
@ -14,8 +14,8 @@ class MXIOINFO
|
||||
|
||||
MxU16 Open(const char *filename, DWORD fdwOpen);
|
||||
MxU16 Close(MxLong arg);
|
||||
MxLong Read(void *pch, LONG cch);
|
||||
MxLong Seek(LONG lOffset, int iOrigin);
|
||||
MxLong Read(HPSTR pch, LONG cch);
|
||||
MxU16 SetBuffer(LPSTR pchBuffer, LONG cchBuffer, LONG unk);
|
||||
MxU16 Flush(UINT);
|
||||
MxU16 Advance(UINT);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user