summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2012-09-26 16:01:09 +0300
committerMichael Meeks <michael.meeks@suse.com>2012-10-01 09:45:05 +0000
commit887f67674108b5f45e7748f6fbbf1fa0131b0ba8 (patch)
treebfdbe85c7e57b1900cc772b080148d22e9309f20
parent6232eeaa90643f2e067145296f8e97fb16f7ecf5 (diff)
Silly workaround for fdo#55156
I feel dirty now. Change-Id: I1cafb0c0494d56bc9c81594c2145b2cc4a1ee389 Reviewed-on: https://gerrit.libreoffice.org/710 Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Michael Meeks <michael.meeks@suse.com>
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapper.mm4
1 files changed, 4 insertions, 0 deletions
diff --git a/vcl/aqua/source/a11y/aqua11ywrapper.mm b/vcl/aqua/source/a11y/aqua11ywrapper.mm
index 2398e82a0fdb..1be3e4ae5910 100644
--- a/vcl/aqua/source/a11y/aqua11ywrapper.mm
+++ b/vcl/aqua/source/a11y/aqua11ywrapper.mm
@@ -378,12 +378,16 @@ static BOOL isPopupMenuOpen = NO;
-(id)windowAttribute {
// go upstairs until reaching the broken connection
AquaA11yWrapper * aWrapper = self;
+ int loops = 0;
while ( [ aWrapper accessibleContext ] -> getAccessibleParent().is() ) {
AquaA11yWrapper *aTentativeParentWrapper = [ AquaA11yFactory wrapperForAccessibleContext: [ aWrapper accessibleContext ] -> getAccessibleParent() -> getAccessibleContext() ];
// Quick-and-dirty fix for infinite loop after fixing crash in
// fdo#47275
if ( aTentativeParentWrapper == aWrapper )
break;
+ // Even dirtier fix for infinite loop in fdo#55156
+ if ( loops++ == 100 )
+ break;
aWrapper = aTentativeParentWrapper;
[ aWrapper autorelease ];
}