Chromium Code Reviews| Index: Source/web/PopupListBox.cpp |
| diff --git a/Source/web/PopupListBox.cpp b/Source/web/PopupListBox.cpp |
| index da25eacac1a02130cf652b75f5821c715fed51ba..077edd855525ab5c67249c8f83bb4b55993ab3b1 100644 |
| --- a/Source/web/PopupListBox.cpp |
| +++ b/Source/web/PopupListBox.cpp |
| @@ -87,7 +87,22 @@ PopupListBox::~PopupListBox() |
| { |
| clear(); |
| + // Oilpan: the scrollbars of the ScrollView are self-sufficient, |
| + // capable of detaching themselves from their animator on |
| + // finalization. |
| +#if !ENABLE(OILPAN) |
| setHasVerticalScrollbar(false); |
| +#endif |
| +} |
| + |
| +void PopupListBox::trace(Visitor* visitor) |
| +{ |
| + visitor->trace(m_capturingScrollbar); |
| + visitor->trace(m_lastScrollbarUnderMouse); |
| + visitor->trace(m_focusedElement); |
| + visitor->trace(m_container); |
| + visitor->trace(m_verticalScrollbar); |
| + Widget::trace(visitor); |
| } |
| bool PopupListBox::handleMouseDownEvent(const PlatformMouseEvent& event) |
| @@ -502,7 +517,7 @@ Font PopupListBox::getRowFont(int rowIndex) const |
| void PopupListBox::abandon() |
| { |
| - RefPtr<PopupListBox> keepAlive(this); |
| + RefPtrWillBeRawPtr<PopupListBox> protect(this); |
| m_selectedIndex = m_originalIndex; |
| @@ -550,7 +565,7 @@ bool PopupListBox::acceptIndex(int index) |
| } |
| if (isSelectableItem(index)) { |
| - RefPtr<PopupListBox> keepAlive(this); |
| + RefPtrWillBeRawPtr<PopupListBox> protect(this); |
| // Hide ourselves first since valueChanged may have numerous side-effects. |
| hidePopup(); |
| @@ -835,8 +850,7 @@ void PopupListBox::layout() |
| void PopupListBox::clear() |
| { |
| - for (Vector<PopupItem*>::iterator it = m_items.begin(); it != m_items.end(); ++it) |
| - delete *it; |
| + deleteAllValues(m_items); |
|
haraken
2014/09/29 14:16:36
It would be better to use Vector<OwnPtr<PopupItem>
|
| m_items.clear(); |
| } |