Fix static initialisation order fiasco issue for Version variables
Fixes a crash that could occur if the static constructor function for the MainSettings.cpp TU happened to run before the variables in Common/Version.cpp are initialised. (This is known as the static initialisation order fiasco.) By using wrapper functions, those variables are now guaranteed to be constructed on first use.
This commit is contained in:
23 files changed
+86
-54
No files matched your search
@@ -58,10 +58,10 @@ IPCReply GetVersion(const IOCtlVRequest& request)
|
||||
return IPCReply(IPC_EINVAL);
|
||||
}
|
||||
|
||||
const auto length = std::min(size_t(request.io_vectors[0].size), Common::scm_desc_str.size());
|
||||
const auto length = std::min(size_t(request.io_vectors[0].size), Common::GetScmDescStr().size());
|
||||
|
||||
Memory::Memset(request.io_vectors[0].address, 0, request.io_vectors[0].size);
|
||||
Memory::CopyToEmu(request.io_vectors[0].address, Common::scm_desc_str.data(), length);
|
||||
Memory::CopyToEmu(request.io_vectors[0].address, Common::GetScmDescStr().data(), length);
|
||||
|
||||
return IPCReply(IPC_SUCCESS);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user