summaryrefslogtreecommitdiff
path: root/src/JSystem/JKernel/JKRFileLoader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/JKernel/JKRFileLoader.cpp')
-rw-r--r--src/JSystem/JKernel/JKRFileLoader.cpp56
1 files changed, 20 insertions, 36 deletions
diff --git a/src/JSystem/JKernel/JKRFileLoader.cpp b/src/JSystem/JKernel/JKRFileLoader.cpp
index 0fd148394e..825fa20e8e 100644
--- a/src/JSystem/JKernel/JKRFileLoader.cpp
+++ b/src/JSystem/JKernel/JKRFileLoader.cpp
@@ -15,49 +15,40 @@ JKRFileLoader::JKRFileLoader(void)
: mFileLoaderLink(this), mVolumeName(NULL), mVolumeType(0), mMountCount(0) {}
JKRFileLoader::~JKRFileLoader() {
- if (getCurrentVolume() == this) {
- setCurrentVolume(NULL);
+ if (sCurrentVolume == this) {
+ sCurrentVolume = NULL;
}
}
void JKRFileLoader::unmount(void) {
- s32 count = mMountCount;
if (mMountCount != 0) {
- count--;
- mMountCount = count;
- if (count == 0) {
+ if (--mMountCount == 0) {
delete this;
}
}
}
void* JKRFileLoader::getGlbResource(const char* name) {
- const char* name_reference[1];
- name_reference[0] = name;
-
- JKRFileLoader* fileLoader = findVolume(name_reference);
+ JKRFileLoader* fileLoader = findVolume(&name);
void* resource;
if (fileLoader == NULL) {
- resource = NULL;
+ return NULL;
} else {
- resource = fileLoader->getResource(name_reference[0]);
+ resource = fileLoader->getResource(name);
+ return resource;
}
-
- return resource;
}
void* JKRFileLoader::getGlbResource(const char* name, JKRFileLoader* fileLoader) {
void* resource = NULL;
if (fileLoader) {
- return fileLoader->getResource(0, name);
- }
-
- JSUList<JKRFileLoader>& volumeList = getVolumeList();
- JSUListIterator<JKRFileLoader> iterator;
- for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
- resource = iterator->getResource(0, name);
- if (resource)
- break;
+ resource = fileLoader->getResource(0, name);
+ } else {
+ for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) {
+ resource = iterator->getResource(0, name);
+ if (resource)
+ break;
+ }
}
return resource;
}
@@ -67,9 +58,7 @@ bool JKRFileLoader::removeResource(void* resource, JKRFileLoader* fileLoader) {
return fileLoader->removeResource(resource);
}
- JSUList<JKRFileLoader>& volumeList = getVolumeList();
- JSUListIterator<JKRFileLoader> iterator;
- for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
+ for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) {
if (iterator->removeResource(resource)) {
return true;
}
@@ -83,9 +72,7 @@ bool JKRFileLoader::detachResource(void* resource, JKRFileLoader* fileLoader) {
return fileLoader->detachResource(resource);
}
- JSUList<JKRFileLoader>& volumeList = getVolumeList();
- JSUListIterator<JKRFileLoader> iterator;
- for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
+ for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) {
if (iterator->detachResource(resource)) {
return true;
}
@@ -96,15 +83,13 @@ bool JKRFileLoader::detachResource(void* resource, JKRFileLoader* fileLoader) {
JKRFileLoader* JKRFileLoader::findVolume(const char** volumeName) {
if (*volumeName[0] != '/') {
- return getCurrentVolume();
+ return sCurrentVolume;
}
char volumeNameBuffer[0x101];
*volumeName = fetchVolumeName(volumeNameBuffer, ARRAY_SIZEU(volumeNameBuffer), *volumeName);
- JSUList<JKRFileLoader>& volumeList = getVolumeList();
- JSUListIterator<JKRFileLoader> iterator;
- for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
+ for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) {
if (strcmp(volumeNameBuffer, iterator->mVolumeName) == 0) {
return iterator.getObject();
}
@@ -113,10 +98,9 @@ JKRFileLoader* JKRFileLoader::findVolume(const char** volumeName) {
return NULL;
}
-
-static char rootPath[2] = "/";
-
const char* JKRFileLoader::fetchVolumeName(char* buffer, s32 bufferSize, const char* path) {
+ static char rootPath[2] = "/";
+
if (strcmp(path, "/") == 0) {
strcpy(buffer, rootPath);
return rootPath;