Register user-modules with the kernel in UserModule::Restore

This commit is contained in:
Dr. Chat
2015-12-26 16:37:43 -06:00
committed by Ben Vanik
parent 2855036f72
commit bb5fd73b9e
4 changed files with 39 additions and 3 deletions

View File

@@ -114,7 +114,7 @@ bool XModule::Save(ByteStream* stream) {
object_ref<XModule> XModule::Restore(KernelState* kernel_state,
ByteStream* stream) {
if (stream->Read<uint32_t>() != 'XMOD') {
return false;
return nullptr;
}
auto path = stream->Read<std::string>();
@@ -123,6 +123,10 @@ object_ref<XModule> XModule::Restore(KernelState* kernel_state,
// Can only save user modules at the moment, so just redirect.
// TODO: Find a way to call RestoreObject here before UserModule::Restore.
auto module = UserModule::Restore(kernel_state, stream, path);
if (!module) {
return nullptr;
}
XELOGD("XModule %.8X (%s)", module->handle(), module->path_.c_str());
module->hmodule_ptr_ = hmodule_ptr;