diff --git a/loader/src/hooks/AndroidExceptionFix.cpp b/loader/src/hooks/AndroidExceptionFix.cpp index eb5b0b7d..a14feb72 100644 --- a/loader/src/hooks/AndroidExceptionFix.cpp +++ b/loader/src/hooks/AndroidExceptionFix.cpp @@ -2,11 +2,20 @@ using namespace geode::prelude; -#ifdef GEODE_IS_ANDROID +#ifdef GEODE_IS_ANDROID32 // replaces https://github.com/llvm-mirror/libcxxabi/blob/master/src/private_typeinfo.cpp#L213 // this is the function that checks if a type can catch an exception -bool canCatchImpl(const std::type_info* self, const std::type_info* thrown, void*& adjustedPtr) { +bool canCatchImpl(const std::type_info* self, const std::type_info* thrown, void*& adjustedPtr) { + // cause who is gonna use foreign exceptions anyway +#if 0 + if (std::strcmp(self->name(), typeid(std::exception).name()) == 0) { + return true; + } + if (adjustedPtr == nullptr) { + return false; + } +#endif auto vtable = reinterpret_cast<geode::cast::VtableType*>(*(intptr_t*)adjustedPtr); auto complete = static_cast<geode::cast::CompleteVtableType*>(vtable); auto typeinfo = complete->m_typeinfo;