| Index: Source/core/html/imports/HTMLImportsController.cpp
|
| diff --git a/Source/core/html/imports/HTMLImportsController.cpp b/Source/core/html/imports/HTMLImportsController.cpp
|
| index dde4127a28b524dfd83b0e014e4f6701b5e81acf..18b24eaa8d6a4cae801ca521c3f03c7918e99cb9 100644
|
| --- a/Source/core/html/imports/HTMLImportsController.cpp
|
| +++ b/Source/core/html/imports/HTMLImportsController.cpp
|
| @@ -57,6 +57,9 @@ void HTMLImportsController::provideTo(Document& master)
|
|
|
| void HTMLImportsController::removeFrom(Document& master)
|
| {
|
| + HTMLImportsController* controller = master.importsController();
|
| + ASSERT(controller);
|
| + controller->dispose();
|
| static_cast<DocumentSupplementable&>(master).removeSupplement(supplementName());
|
| master.setImportsController(nullptr);
|
| }
|
| @@ -70,12 +73,21 @@ HTMLImportsController::HTMLImportsController(Document& master)
|
| HTMLImportsController::~HTMLImportsController()
|
| {
|
| #if !ENABLE(OILPAN)
|
| - m_root.clear();
|
| + // Verify that dispose() has been called.
|
| + ASSERT(!m_root);
|
| +#endif
|
| +}
|
| +
|
| +void HTMLImportsController::dispose()
|
| +{
|
| + if (m_root) {
|
| + m_root->dispose();
|
| + m_root.clear();
|
| + }
|
|
|
| for (size_t i = 0; i < m_loaders.size(); ++i)
|
| - m_loaders[i]->importDestroyed();
|
| + m_loaders[i]->dispose();
|
| m_loaders.clear();
|
| -#endif
|
| }
|
|
|
| static bool makesCycle(HTMLImport* parent, const KURL& url)
|
|
|