diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-23 11:29:54 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-23 11:29:54 +0100 |
commit | 60b927b4cf0e3fb34a0b14ce9b6f9157e69dd549 (patch) | |
tree | 1c723f20a2996b9cae255e493cbe88f242ab8de0 | |
parent | 0072a0ba31797a7c680dad858ce272dbc3ab24aa (diff) | |
parent | 713ea0629a8c767e117836af4646cf88deca872a (diff) | |
download | redot-engine-60b927b4cf0e3fb34a0b14ce9b6f9157e69dd549.tar.gz |
Merge pull request #88689 from dsnopek/openxr-extension-wrapper-crash
Fix crash when using OpenXR extension wrappers from GDExtension
-rw-r--r-- | modules/openxr/openxr_api.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/openxr/openxr_api.cpp b/modules/openxr/openxr_api.cpp index ccf97662e2..e978c012b5 100644 --- a/modules/openxr/openxr_api.cpp +++ b/modules/openxr/openxr_api.cpp @@ -1532,7 +1532,13 @@ void OpenXRAPI::register_extension_metadata() { void OpenXRAPI::cleanup_extension_wrappers() { for (OpenXRExtensionWrapper *extension_wrapper : registered_extension_wrappers) { - memdelete(extension_wrapper); + // Fix crash when the extension wrapper comes from GDExtension. + OpenXRExtensionWrapperExtension *gdextension_extension_wrapper = dynamic_cast<OpenXRExtensionWrapperExtension *>(extension_wrapper); + if (gdextension_extension_wrapper) { + memdelete(gdextension_extension_wrapper); + } else { + memdelete(extension_wrapper); + } } registered_extension_wrappers.clear(); } |