Changeset 246941 in webkit
- Timestamp:
- Jun 28, 2019 3:21:35 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r246940 r246941 1 2019-06-28 chris fleizach <cfleizach@apple.com> 2 3 AX: Both convertToNSArray() functions in WebAccessibilityObjectWrapperBase.mm leak every NSMutableArray returned 4 https://bugs.webkit.org/show_bug.cgi?id=199306 5 6 Reviewed by David Kilzer. 7 8 Stop leaking every instance of convertToNSArray and return an autoreleased version. 9 Remove unneeded casts. 10 11 * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: 12 (-[WebAccessibilityObjectWrapper accessibilityFindMatchingObjects:]): 13 * accessibility/mac/WebAccessibilityObjectWrapperBase.h: 14 * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: 15 (convertToNSArray): 16 * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: 17 (-[WebAccessibilityObjectWrapper childrenVectorArray]): 18 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): 19 (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): 20 1 21 2019-06-28 Wenson Hsieh <wenson_hsieh@apple.com> 2 22 -
trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
r245912 r246941 1981 1981 AccessibilityObject::AccessibilityChildrenVector results; 1982 1982 m_object->findMatchingObjects(&criteria, results); 1983 return (NSArray *)convertToNSArray(results);1983 return convertToNSArray(results); 1984 1984 } 1985 1985 -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.h
r244691 r246941 101 101 102 102 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE) 103 extern RetainPtr<NSArray>convertToNSArray(const Vector<RefPtr<WebCore::AXIsolatedTreeNode>>&);103 extern NSArray *convertToNSArray(const Vector<RefPtr<WebCore::AXIsolatedTreeNode>>&); 104 104 #endif 105 extern RetainPtr<NSArray>convertToNSArray(const WebCore::AccessibilityObject::AccessibilityChildrenVector&);105 extern NSArray *convertToNSArray(const WebCore::AccessibilityObject::AccessibilityChildrenVector&); 106 106 107 107 #if PLATFORM(IOS_FAMILY) -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm
r246126 r246941 277 277 278 278 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE) 279 RetainPtr<NSArray>convertToNSArray(const Vector<RefPtr<WebCore::AXIsolatedTreeNode>>& children)280 { 281 RetainPtr<NSMutableArray>result = [[NSMutableArray alloc] initWithCapacity:children.size()];279 NSArray *convertToNSArray(const Vector<RefPtr<WebCore::AXIsolatedTreeNode>>& children) 280 { 281 NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:children.size()]; 282 282 for (auto& child : children) 283 283 addChildToArray(*child, result) 284 return result;285 } 286 #endif 287 288 RetainPtr<NSArray>convertToNSArray(const WebCore::AccessibilityObject::AccessibilityChildrenVector& children)289 { 290 RetainPtr<NSMutableArray>result = [[NSMutableArray alloc] initWithCapacity:children.size()];284 return [result autorelease]; 285 } 286 #endif 287 288 NSArray *convertToNSArray(const WebCore::AccessibilityObject::AccessibilityChildrenVector& children) 289 { 290 NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:children.size()]; 291 291 for (auto& child : children) 292 292 addChildToArray(*child, result); 293 return result;293 return [result autorelease]; 294 294 } 295 295 -
trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
r246490 r246941 2002 2002 for (auto childID : nodeChildren) 2003 2003 children.uncheckedAppend(tree->nodeForID(child)); 2004 return (NSArray *)convertToNSArray(children);2005 } 2006 #endif 2007 return (NSArray *)convertToNSArray(m_object->children());2004 return convertToNSArray(children); 2005 } 2006 #endif 2007 return convertToNSArray(m_object->children()); 2008 2008 } 2009 2009 … … 2678 2678 AccessibilityObject::AccessibilityChildrenVector contentCopy; 2679 2679 m_object->ariaTreeItemContent(contentCopy); 2680 return (NSArray *)convertToNSArray(contentCopy);2680 return convertToNSArray(contentCopy); 2681 2681 } 2682 2682 … … 2688 2688 AccessibilityObject::AccessibilityChildrenVector selectedChildrenCopy; 2689 2689 m_object->selectedChildren(selectedChildrenCopy); 2690 return (NSArray *)convertToNSArray(selectedChildrenCopy);2690 return convertToNSArray(selectedChildrenCopy); 2691 2691 } 2692 2692 return nil; … … 2697 2697 AccessibilityObject::AccessibilityChildrenVector visibleChildrenCopy; 2698 2698 m_object->visibleChildren(visibleChildrenCopy); 2699 return (NSArray *)convertToNSArray(visibleChildrenCopy);2699 return convertToNSArray(visibleChildrenCopy); 2700 2700 } 2701 2701 else if (m_object->isList()) … … 2710 2710 AccessibilityObject::AccessibilityChildrenVector links; 2711 2711 downcast<AccessibilityRenderObject>(*m_object).getDocumentLinks(links); 2712 return (NSArray *)convertToNSArray(links);2712 return convertToNSArray(links); 2713 2713 } 2714 2714 if ([attributeName isEqualToString:@"AXLoaded"]) … … 2926 2926 AccessibilityObject::AccessibilityChildrenVector tabsChildren; 2927 2927 m_object->tabChildren(tabsChildren); 2928 return (NSArray *)convertToNSArray(tabsChildren);2928 return convertToNSArray(tabsChildren); 2929 2929 } 2930 2930 } … … 2936 2936 AccessibilityObject::AccessibilityChildrenVector tabs; 2937 2937 m_object->tabChildren(tabs); 2938 auto tabsChildren = (NSArray *)convertToNSArray(tabs);2938 auto tabsChildren = convertToNSArray(tabs); 2939 2939 2940 2940 NSMutableArray *contents = [NSMutableArray array]; … … 2962 2962 auto& table = downcast<AccessibilityTable>(*m_object); 2963 2963 if ([attributeName isEqualToString:NSAccessibilityRowsAttribute]) 2964 return (NSArray *)convertToNSArray(table.rows());2964 return convertToNSArray(table.rows()); 2965 2965 2966 2966 if ([attributeName isEqualToString:NSAccessibilityVisibleRowsAttribute]) { 2967 2967 AccessibilityObject::AccessibilityChildrenVector visibleRows; 2968 2968 table.visibleRows(visibleRows); 2969 return (NSArray *)convertToNSArray(visibleRows);2969 return convertToNSArray(visibleRows); 2970 2970 } 2971 2971 … … 2973 2973 if ([attributeName isEqualToString:NSAccessibilityColumnsAttribute] || 2974 2974 [attributeName isEqualToString:NSAccessibilityVisibleColumnsAttribute]) { 2975 return (NSArray *)convertToNSArray(table.columns());2975 return convertToNSArray(table.columns()); 2976 2976 } 2977 2977 … … 2979 2979 AccessibilityObject::AccessibilityChildrenVector selectedChildrenCopy; 2980 2980 m_object->selectedChildren(selectedChildrenCopy); 2981 return (NSArray *)convertToNSArray(selectedChildrenCopy);2981 return convertToNSArray(selectedChildrenCopy); 2982 2982 } 2983 2983 … … 2990 2990 AccessibilityObject::AccessibilityChildrenVector columnHeaders; 2991 2991 table.columnHeaders(columnHeaders); 2992 return (NSArray *)convertToNSArray(columnHeaders);2992 return convertToNSArray(columnHeaders); 2993 2993 } 2994 2994 … … 3003 3003 AccessibilityObject::AccessibilityChildrenVector rowHeaders; 3004 3004 table.rowHeaders(rowHeaders); 3005 return (NSArray *)convertToNSArray(rowHeaders);3005 return convertToNSArray(rowHeaders); 3006 3006 } 3007 3007 … … 3009 3009 AccessibilityObject::AccessibilityChildrenVector cells; 3010 3010 table.cells(cells); 3011 return (NSArray *)convertToNSArray(cells);3011 return convertToNSArray(cells); 3012 3012 } 3013 3013 … … 3033 3033 if ([attributeName isEqualToString:NSAccessibilityRowsAttribute] || 3034 3034 [attributeName isEqualToString:NSAccessibilityVisibleRowsAttribute]) { 3035 return (NSArray *)convertToNSArray(column.children());3035 return convertToNSArray(column.children()); 3036 3036 } 3037 3037 if ([attributeName isEqualToString:NSAccessibilityHeaderAttribute]) { … … 3058 3058 AccessibilityObject::AccessibilityChildrenVector columnHeaders; 3059 3059 cell.columnHeaders(columnHeaders); 3060 return (NSArray *)convertToNSArray(columnHeaders);3060 return convertToNSArray(columnHeaders); 3061 3061 } 3062 3062 if ([attributeName isEqualToString:NSAccessibilityRowHeaderUIElementsAttribute]) { 3063 3063 AccessibilityObject::AccessibilityChildrenVector rowHeaders; 3064 3064 cell.rowHeaders(rowHeaders); 3065 return (NSArray *)convertToNSArray(rowHeaders);3065 return convertToNSArray(rowHeaders); 3066 3066 } 3067 3067 if ([attributeName isEqualToString:NSAccessibilityARIAColumnIndexAttribute]) … … 3076 3076 AccessibilityObject::AccessibilityChildrenVector selectedChildrenCopy; 3077 3077 m_object->selectedChildren(selectedChildrenCopy); 3078 return (NSArray *)convertToNSArray(selectedChildrenCopy);3078 return convertToNSArray(selectedChildrenCopy); 3079 3079 } 3080 3080 if ([attributeName isEqualToString:NSAccessibilityRowsAttribute]) { 3081 3081 AccessibilityObject::AccessibilityChildrenVector rowsCopy; 3082 3082 m_object->ariaTreeRows(rowsCopy); 3083 return (NSArray *)convertToNSArray(rowsCopy);3083 return convertToNSArray(rowsCopy); 3084 3084 } 3085 3085 … … 3119 3119 AccessibilityObject::AccessibilityChildrenVector rowsCopy; 3120 3120 m_object->ariaTreeItemDisclosedRows(rowsCopy); 3121 return (NSArray *)convertToNSArray(rowsCopy);3121 return convertToNSArray(rowsCopy); 3122 3122 } else if (is<AccessibilityARIAGridRow>(*m_object)) { 3123 3123 AccessibilityObject::AccessibilityChildrenVector rowsCopy; 3124 3124 downcast<AccessibilityARIAGridRow>(*m_object).disclosedRows(rowsCopy); 3125 return (NSArray *)convertToNSArray(rowsCopy);3125 return convertToNSArray(rowsCopy); 3126 3126 } 3127 3127 } … … 3179 3179 AccessibilityObject::AccessibilityChildrenVector linkedUIElements; 3180 3180 m_object->linkedUIElements(linkedUIElements); 3181 return (NSArray *)convertToNSArray(linkedUIElements);3181 return convertToNSArray(linkedUIElements); 3182 3182 } 3183 3183 … … 3260 3260 AccessibilityObject::AccessibilityChildrenVector ariaOwns; 3261 3261 m_object->ariaOwnsElements(ariaOwns); 3262 return (NSArray *)convertToNSArray(ariaOwns);3262 return convertToNSArray(ariaOwns); 3263 3263 } 3264 3264 … … 3402 3402 AccessibilityObject::AccessibilityChildrenVector details; 3403 3403 m_object->ariaDetailsElements(details); 3404 return (NSArray *)convertToNSArray(details);3404 return convertToNSArray(details); 3405 3405 } 3406 3406 … … 3411 3411 AccessibilityObject::AccessibilityChildrenVector errorMessages; 3412 3412 m_object->ariaErrorMessageElements(errorMessages); 3413 return (NSArray *)convertToNSArray(errorMessages);3413 return convertToNSArray(errorMessages); 3414 3414 } 3415 3415 … … 3435 3435 AccessibilityObject::AccessibilityChildrenVector ariaControls; 3436 3436 m_object->ariaControlsElements(ariaControls); 3437 return (NSArray *)convertToNSArray(ariaControls);3437 return convertToNSArray(ariaControls); 3438 3438 } 3439 3439 … … 4188 4188 AccessibilityObject::AccessibilityChildrenVector results; 4189 4189 m_object->findMatchingObjects(&criteria, results); 4190 return (NSArray *)convertToNSArray(results);4190 return convertToNSArray(results); 4191 4191 } 4192 4192
Note: See TracChangeset
for help on using the changeset viewer.