Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: Source/modules/accessibility/AXTableColumn.cpp

Issue 1175533004: Refactor: Clear m_axObjectCache when AXObject detaches (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Added ASSERT Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 20 matching lines...) Expand all
31 31
32 #include "core/layout/LayoutTableCell.h" 32 #include "core/layout/LayoutTableCell.h"
33 #include "modules/accessibility/AXObjectCacheImpl.h" 33 #include "modules/accessibility/AXObjectCacheImpl.h"
34 #include "modules/accessibility/AXTableCell.h" 34 #include "modules/accessibility/AXTableCell.h"
35 35
36 36
37 namespace blink { 37 namespace blink {
38 38
39 using namespace HTMLNames; 39 using namespace HTMLNames;
40 40
41 AXTableColumn::AXTableColumn(AXObjectCacheImpl* axObjectCache) 41 AXTableColumn::AXTableColumn(AXObjectCacheImpl& axObjectCache)
42 : AXMockObject(axObjectCache) 42 : AXMockObject(axObjectCache)
43 { 43 {
44 } 44 }
45 45
46 AXTableColumn::~AXTableColumn() 46 AXTableColumn::~AXTableColumn()
47 { 47 {
48 } 48 }
49 49
50 PassRefPtr<AXTableColumn> AXTableColumn::create(AXObjectCacheImpl* axObjectCache ) 50 PassRefPtr<AXTableColumn> AXTableColumn::create(AXObjectCacheImpl& axObjectCache )
51 { 51 {
52 return adoptRef(new AXTableColumn(axObjectCache)); 52 return adoptRef(new AXTableColumn(axObjectCache));
53 } 53 }
54 54
55 55
56 void AXTableColumn::setParent(AXObject* parent) 56 void AXTableColumn::setParent(AXObject* parent)
57 { 57 {
58 AXMockObject::setParent(parent); 58 AXMockObject::setParent(parent);
59 59
60 clearChildren(); 60 clearChildren();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 for (; tableSection; tableSection = table->sectionBelow(tableSection, SkipEm ptySections)) { 94 for (; tableSection; tableSection = table->sectionBelow(tableSection, SkipEm ptySections)) {
95 unsigned numCols = tableSection->numColumns(); 95 unsigned numCols = tableSection->numColumns();
96 if (m_columnIndex >= numCols) 96 if (m_columnIndex >= numCols)
97 continue; 97 continue;
98 unsigned numRows = tableSection->numRows(); 98 unsigned numRows = tableSection->numRows();
99 for (unsigned r = 0; r < numRows; r++) { 99 for (unsigned r = 0; r < numRows; r++) {
100 LayoutTableCell* layoutCell = tableSection->primaryCellAt(r, m_colum nIndex); 100 LayoutTableCell* layoutCell = tableSection->primaryCellAt(r, m_colum nIndex);
101 if (!layoutCell) 101 if (!layoutCell)
102 continue; 102 continue;
103 103
104 AXObject* cell = axObjectCache()->getOrCreate(layoutCell->node()); 104 AXObject* cell = axObjectCache().getOrCreate(layoutCell->node());
105 if (!cell || !cell->isTableCell() || headers.contains(cell)) 105 if (!cell || !cell->isTableCell() || headers.contains(cell))
106 continue; 106 continue;
107 107
108 if (toAXTableCell(cell)->scanToDecideHeaderRole() == ColumnHeaderRol e) 108 if (toAXTableCell(cell)->scanToDecideHeaderRole() == ColumnHeaderRol e)
109 headers.append(cell); 109 headers.append(cell);
110 } 110 }
111 } 111 }
112 } 112 }
113 113
114 AXObject* AXTableColumn::headerObject() 114 AXObject* AXTableColumn::headerObject()
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 // make sure the last one isn't the same as this one (rowspan cells) 154 // make sure the last one isn't the same as this one (rowspan cells)
155 if (m_children.size() > 0 && m_children.last() == cell) 155 if (m_children.size() > 0 && m_children.last() == cell)
156 continue; 156 continue;
157 157
158 m_children.append(cell); 158 m_children.append(cell);
159 m_columnRect.unite(cell->elementRect()); 159 m_columnRect.unite(cell->elementRect());
160 } 160 }
161 } 161 }
162 162
163 } // namespace blink 163 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/accessibility/AXTableColumn.h ('k') | Source/modules/accessibility/AXTableHeaderContainer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698