summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-17 23:18:13 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-17 23:18:13 +0000
commit7b580671bdd357ba9baa56b433db39ffeceb05f2 (patch)
treecb06f11918200e53989f13dfae0463a70bb6e58a
parentb0be4f316a39494e4e83201654e08f2fb8adcbaa (diff)
downloadchromium_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.cc20
-rw-r--r--chrome/browser/ui/window_sizer.h5
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);
};