mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-29 01:30:50 -04:00
JKernel debug (#3012)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user