summaryrefslogtreecommitdiff
path: root/libs/JSystem/JSupport/JSUMemoryStream.cpp
diff options
context:
space:
mode:
authorTakaRikka <takarikka@outlook.com>2023-02-26 22:18:40 -0800
committerTakaRikka <takarikka@outlook.com>2023-02-26 22:18:40 -0800
commiteae9455a7df805d653aae76de2eec5af8e81fbf4 (patch)
tree2be6809331693f37caeb9f832c0a53082ce94003 /libs/JSystem/JSupport/JSUMemoryStream.cpp
parent090dcee01206bf7ba6b2231747f0b083521019f1 (diff)
JUtility / JSupport / misc cleanup
Diffstat (limited to 'libs/JSystem/JSupport/JSUMemoryStream.cpp')
-rw-r--r--libs/JSystem/JSupport/JSUMemoryStream.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/libs/JSystem/JSupport/JSUMemoryStream.cpp b/libs/JSystem/JSupport/JSUMemoryStream.cpp
index 0e03c38f78..7b4e6f5812 100644
--- a/libs/JSystem/JSupport/JSUMemoryStream.cpp
+++ b/libs/JSystem/JSupport/JSUMemoryStream.cpp
@@ -5,12 +5,6 @@
#include "JSystem/JSupport/JSUMemoryStream.h"
#include "MSL_C/MSL_Common/Src/string.h"
-#include "dol2asm.h"
-#include "dolphin/types.h"
-
-//
-// Declarations:
-//
/* 802DC520-802DC534 2D6E60 0014+00 0/0 3/3 0/0 .text setBuffer__20JSUMemoryInputStreamFPCvl */
void JSUMemoryInputStream::setBuffer(void const* pBuffer, s32 length) {
@@ -24,10 +18,12 @@ u32 JSUMemoryInputStream::readData(void* pData, s32 length) {
if (mPosition + length > mLength) {
length = mLength - mPosition;
}
+
if (length > 0) {
memcpy(pData, (void*)((s32)mBuffer + mPosition), length);
mPosition += length;
}
+
return length;
}
@@ -35,6 +31,7 @@ u32 JSUMemoryInputStream::readData(void* pData, s32 length) {
* seekPos__20JSUMemoryInputStreamFl17JSUStreamSeekFrom */
s32 JSUMemoryInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) {
s32 oldPos = mPosition;
+
switch (seekFrom) {
case JSUStreamSeekFrom_SET:
mPosition = pos;
@@ -46,12 +43,15 @@ s32 JSUMemoryInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) {
mPosition += pos;
break;
}
+
if (mPosition < 0) {
mPosition = 0;
}
+
if (mPosition > mLength) {
mPosition = mLength;
}
+
return mPosition - oldPos;
}