Index: Source/web/PopupMenuChromium.cpp |
diff --git a/Source/web/PopupMenuChromium.cpp b/Source/web/PopupMenuChromium.cpp |
index 05561cc4b52489b0654998853f4d2528065ca70b..2462b44e0f78b2e4360da3616cb4e3cf183e9f7c 100644 |
--- a/Source/web/PopupMenuChromium.cpp |
+++ b/Source/web/PopupMenuChromium.cpp |
@@ -48,9 +48,10 @@ PopupMenuChromium::PopupMenuChromium(LocalFrame& frame, PopupMenuClient* client) |
PopupMenuChromium::~PopupMenuChromium() |
{ |
// When the PopupMenuChromium is destroyed, the client could already have been deleted. |
- if (m_popup) |
+ if (m_popup) { |
m_popup->listBox()->disconnectClient(); |
- hide(); |
+ m_popup->hide(); |
+ } |
} |
void PopupMenuChromium::show(const FloatQuad& controlPosition, const IntSize& controlSize, int index) |
@@ -77,6 +78,8 @@ void PopupMenuChromium::updateFromElement() |
void PopupMenuChromium::disconnectClient() |
{ |
m_popupClient = 0; |
+ hide(); |
+ m_popup.clear(); |
} |
} // namespace blink |