Partial fix tdf#146626 Catch uncaught DisposedException
Fix crash due to an uncaught DisposedException thrown by
SwAccessibleParagraph::getTextRange() by using the same try/catch
block in -[A11yWrapper accessibilityAttributeValue:] in
-[A11yWrapper accessibilityAttributeValue:forParameter].
Change-Id: Ifcaec3eb2d76f32bddc56a1242f6d86f8b90f782
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152361
Tested-by: Jenkins
Reviewed-by: Patrick Luby <plubius@neooffice.org>
(cherry picked from commit f8cc6f960e8aeb37547d447fed2b2c6e6ddc02e3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152317
diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm
index c4beeb5..cb6fca0 100644
--- a/vcl/osx/a11ywrapper.mm
+++ b/vcl/osx/a11ywrapper.mm
@@ -870,7 +870,15 @@ static std::ostream &operator<<(std::ostream &s, NSObject *obj) {
SAL_INFO("vcl.a11y", "[" << self << " accessibilityAttributeValue:" << attribute << " forParameter:" << (static_cast<NSObject*>(parameter)) << "]");
SEL methodSelector = [ self selectorForAttribute: attribute asGetter: YES withGetterParameter: YES ];
if ( [ self respondsToSelector: methodSelector ] ) {
return [ self performSelector: methodSelector withObject: parameter ];
try {
return [ self performSelector: methodSelector withObject: parameter ];
} catch ( const DisposedException & ) {
mIsTableCell = NO; // just to be sure
[ AquaA11yFactory removeFromWrapperRepositoryFor: [ self accessibleContext ] ];
return nil;
} catch ( const Exception & ) {
// empty
}
}
return nil; // TODO: to be completed
}