summaryrefslogtreecommitdiffstats
path: root/vcl/osx/a11ywrapper.mm
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/osx/a11ywrapper.mm')
-rw-r--r--vcl/osx/a11ywrapper.mm16
1 files changed, 10 insertions, 6 deletions
diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm
index 73abb6050733..c4beeb5b0567 100644
--- a/vcl/osx/a11ywrapper.mm
+++ b/vcl/osx/a11ywrapper.mm
@@ -807,8 +807,13 @@ static std::ostream &operator<<(std::ostream &s, NSObject *obj) {
if ( [ self accessibleValue ] ) {
[ AquaA11yValueWrapper addAttributeNamesTo: attributeNames ];
}
- [ nativeSubrole release ];
- [ title release ];
+ if ( nativeSubrole ) {
+ [ nativeSubrole release ];
+ }
+ if ( title ) {
+ [ title release ];
+ }
+ // Related: tdf#153374 Don't release autoreleased attributeNames
return attributeNames;
} catch ( DisposedException & ) { // Object is no longer available
if ( nativeSubrole ) {
@@ -817,11 +822,10 @@ static std::ostream &operator<<(std::ostream &s, NSObject *obj) {
if ( title ) {
[ title release ];
}
- if ( attributeNames ) {
- [ attributeNames release ];
- }
+ // Related: tdf#153374 Don't release autoreleased attributeNames
+ // Also, return an autoreleased empty array instead of a retained array.
[ AquaA11yFactory removeFromWrapperRepositoryFor: [ self accessibleContext ] ];
- return [ [ NSArray alloc ] init ];
+ return [ NSArray array ];
}
}