diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 23:18:13 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-17 23:18:13 +0000 |
commit | 7b580671bdd357ba9baa56b433db39ffeceb05f2 (patch) | |
tree | cb06f11918200e53989f13dfae0463a70bb6e58a | |
parent | b0be4f316a39494e4e83201654e08f2fb8adcbaa (diff) | |
download | chromium_src-7b580671bdd357ba9baa56b433db39ffeceb05f2.zip chromium_src-7b580671bdd357ba9baa56b433db39ffeceb05f2.tar.gz chromium_src-7b580671bdd357ba9baa56b433db39ffeceb05f2.tar.bz2 |
Use scoped_ptr for memory management rather than calling delete through WindowSizer.
R=ben@chromium.org
Review URL: http://codereview.chromium.org/8585035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110593 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/window_sizer.cc | 20 | ||||
-rw-r--r-- | chrome/browser/ui/window_sizer.h | 5 |
2 files changed, 11 insertions, 14 deletions
diff --git a/chrome/browser/ui/window_sizer.cc b/chrome/browser/ui/window_sizer.cc index 9a8d7f3..228e4a1 100644 --- a/chrome/browser/ui/window_sizer.cc +++ b/chrome/browser/ui/window_sizer.cc @@ -102,18 +102,13 @@ class DefaultStateProvider : public WindowSizer::StateProvider { /////////////////////////////////////////////////////////////////////////////// // WindowSizer, public: -WindowSizer::WindowSizer( - StateProvider* state_provider, - MonitorInfoProvider* monitor_info_provider) +WindowSizer::WindowSizer(StateProvider* state_provider, + MonitorInfoProvider* monitor_info_provider) : state_provider_(state_provider), monitor_info_provider_(monitor_info_provider) { } WindowSizer::~WindowSizer() { - if (state_provider_) - delete state_provider_; - if (monitor_info_provider_) - delete monitor_info_provider_; } // static @@ -146,7 +141,8 @@ void WindowSizer::DetermineWindowBounds(const gfx::Rect& specified_bounds, bool WindowSizer::GetLastWindowBounds(gfx::Rect* bounds) const { DCHECK(bounds); - if (!state_provider_ || !state_provider_->GetLastActiveWindowState(bounds)) + if (!state_provider_.get() || + !state_provider_->GetLastActiveWindowState(bounds)) return false; gfx::Rect last_window_bounds = *bounds; bounds->Offset(kWindowTilePixels, kWindowTilePixels); @@ -159,7 +155,7 @@ bool WindowSizer::GetLastWindowBounds(gfx::Rect* bounds) const { bool WindowSizer::GetSavedWindowBounds(gfx::Rect* bounds) const { DCHECK(bounds); gfx::Rect saved_work_area; - if (!state_provider_ || + if (!state_provider_.get() || !state_provider_->GetPersistentState(bounds, &saved_work_area)) return false; AdjustBoundsToBeVisibleOnMonitorContaining(*bounds, saved_work_area, bounds); @@ -168,7 +164,7 @@ bool WindowSizer::GetSavedWindowBounds(gfx::Rect* bounds) const { void WindowSizer::GetDefaultWindowBounds(gfx::Rect* default_bounds) const { DCHECK(default_bounds); - DCHECK(monitor_info_provider_); + DCHECK(monitor_info_provider_.get()); gfx::Rect work_area = monitor_info_provider_->GetPrimaryMonitorWorkArea(); @@ -201,7 +197,7 @@ void WindowSizer::GetDefaultWindowBounds(gfx::Rect* default_bounds) const { } bool WindowSizer::PositionIsOffscreen(int position, Edge edge) const { - DCHECK(monitor_info_provider_); + DCHECK(monitor_info_provider_.get()); size_t monitor_count = monitor_info_provider_->GetMonitorCount(); for (size_t i = 0; i < monitor_count; ++i) { gfx::Rect work_area = monitor_info_provider_->GetWorkAreaAt(i); @@ -239,7 +235,7 @@ void WindowSizer::AdjustBoundsToBeVisibleOnMonitorContaining( const gfx::Rect& saved_work_area, gfx::Rect* bounds) const { DCHECK(bounds); - DCHECK(monitor_info_provider_); + DCHECK(monitor_info_provider_.get()); // Find the size of the work area of the monitor that intersects the bounds // of the anchor window. diff --git a/chrome/browser/ui/window_sizer.h b/chrome/browser/ui/window_sizer.h index 2dcb482..20fe2d1 100644 --- a/chrome/browser/ui/window_sizer.h +++ b/chrome/browser/ui/window_sizer.h @@ -9,6 +9,7 @@ #include <vector> #include "base/basictypes.h" +#include "base/memory/scoped_ptr.h" #include "ui/gfx/rect.h" class Browser; @@ -157,8 +158,8 @@ class WindowSizer { gfx::Rect* bounds) const; // Providers for persistent storage and monitor metrics. - StateProvider* state_provider_; - MonitorInfoProvider* monitor_info_provider_; + scoped_ptr<StateProvider> state_provider_; + scoped_ptr<MonitorInfoProvider> monitor_info_provider_; DISALLOW_COPY_AND_ASSIGN(WindowSizer); }; |