From 3d378b28c9098e7a6adc8ebd0c446ac8eb2eb82c Mon Sep 17 00:00:00 2001 From: njohnson Date: Wed, 10 Sep 2025 21:56:38 -0400 Subject: [PATCH] Fix: Improve data parsing This commit updates the data parsing logic within the XAudioPacketAligned class. Specifically, it uses `ParseInt32` and `ParseInt8` instead of direct data stream reading, improving type safety and ensuring correct data handling during parsing. --- libs/xassets/xaudiopacketaligned.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/libs/xassets/xaudiopacketaligned.cpp b/libs/xassets/xaudiopacketaligned.cpp index 24e823a..26b9e64 100644 --- a/libs/xassets/xaudiopacketaligned.cpp +++ b/libs/xassets/xaudiopacketaligned.cpp @@ -8,7 +8,7 @@ XAudioPacketAligned::XAudioPacketAligned() , aXmaLoop() , mContext() { - + SetName("Audio Packet Aligned"); } XAudioPacketAligned::~XAudioPacketAligned() @@ -16,14 +16,11 @@ XAudioPacketAligned::~XAudioPacketAligned() } -void XAudioPacketAligned::ParseData(QDataStream *aStream) +void XAudioPacketAligned::ParseData(XDataStream *aStream) { - qint32 bufferPtr, contextPtr; - - *aStream - >> bufferPtr - >> mBufferSize - >> mLoopCount; + qint32 bufferPtr = aStream->ParseInt32(QString("%1 buffer ptr").arg(GetName())); + mBufferSize = aStream->ParseUInt32(QString("%1 buffer size").arg(GetName())); + mLoopCount = aStream->ParseUInt32(QString("%1 loop count").arg(GetName())); for (int i = 0; i < 6; i++) { @@ -31,15 +28,16 @@ void XAudioPacketAligned::ParseData(QDataStream *aStream) loop.ParseData(aStream); } - *aStream >> contextPtr; + qint32 contextPtr = aStream->ParseInt32(QString("%1 context ptr").arg(GetName())); if (bufferPtr) { aStream->readRawData(mBuffer.data(), mBufferSize); } + if (contextPtr) { - *aStream >> mContext; + mContext = aStream->ParseInt8(QString("%1 context").arg(GetName())); } }