Index: athena/activity/activity_manager_impl.cc |
diff --git a/athena/activity/activity_manager_impl.cc b/athena/activity/activity_manager_impl.cc |
index ba72f0dea52bf2d10a747921b828d24938b24af7..236757459b0a126faf3aba5e01e3ffbac56fff6c 100644 |
--- a/athena/activity/activity_manager_impl.cc |
+++ b/athena/activity/activity_manager_impl.cc |
@@ -7,8 +7,11 @@ |
#include <algorithm> |
#include <vector> |
+#include "athena/activity/public/activity.h" |
#include "athena/activity/public/activity_view_manager.h" |
#include "base/logging.h" |
+#include "base/memory/scoped_vector.h" |
+#include "base/stl_util.h" |
namespace athena { |
@@ -23,6 +26,9 @@ class ActivityManagerImpl : public ActivityManager { |
instance = this; |
} |
virtual ~ActivityManagerImpl() { |
+ while (activities_.empty()) |
+ delete activities_.front(); |
sadrul
2014/06/04 20:34:05
STLDeleteContainerPointers instead?
Jun Mukai
2014/06/04 21:11:14
RemoveActivity changes the contents of |activities
|
+ |
CHECK_EQ(this, instance); |
instance = NULL; |
} |
@@ -77,10 +83,9 @@ ActivityManager* ActivityManager::Get() { |
} |
void ActivityManager::Shutdown() { |
- ActivityViewManager::Shutdown(); |
- |
CHECK(instance); |
delete instance; |
+ ActivityViewManager::Shutdown(); |
sadrul
2014/06/04 20:34:05
This seems unfortunate.
Jun Mukai
2014/06/04 21:11:14
Because ActivityManager depends on ActivityViewMan
|
} |
} // namespace athena |