From ea1003c6bf87a01f45ecb3a4e01aca62f9d7e6f8 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Mon, 9 Jan 2023 16:13:09 +0100 Subject: [PATCH] [CPU] Check if flags pointer exists There is specific situation in FM4 on terminating thread that runs dll where flags pointer doesn't exist --- src/xenia/cpu/ppc/ppc_hir_builder.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/xenia/cpu/ppc/ppc_hir_builder.cc b/src/xenia/cpu/ppc/ppc_hir_builder.cc index b36c36e68..42d996cba 100644 --- a/src/xenia/cpu/ppc/ppc_hir_builder.cc +++ b/src/xenia/cpu/ppc/ppc_hir_builder.cc @@ -596,7 +596,9 @@ void PPCHIRBuilder::SetReturnAddress(Value* value) { XexModule* xexmod = dynamic_cast(mod); if (xexmod) { auto flags = xexmod->GetInstructionAddressFlags(value->AsUint32()); - flags->is_return_site = true; + if (flags) { + flags->is_return_site = true; + } } } }