Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: ui/ozone/platform/dri/dri_window_manager.cc

Issue 556073003: [Ozone-DRI] Do proper bounds checks when moving the cursor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@restore-cursor
Patch Set: . Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/ozone/platform/dri/dri_window_manager.h ('k') | ui/ozone/platform/dri/gbm_surface_factory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/ozone/platform/dri/dri_window_manager.h" 5 #include "ui/ozone/platform/dri/dri_window_manager.h"
6 6
7 #include "ui/ozone/platform/dri/dri_window_delegate.h" 7 #include "base/logging.h"
8 8
9 namespace ui { 9 namespace ui {
10 10
11 DriWindowManager::DriWindowManager() : last_allocated_widget_(0) { 11 DriWindowManager::DriWindowManager() : last_allocated_widget_(0) {
12 } 12 }
13 13
14 DriWindowManager::~DriWindowManager() { 14 DriWindowManager::~DriWindowManager() {
15 DCHECK(delegate_map_.empty());
16 } 15 }
17 16
18 gfx::AcceleratedWidget DriWindowManager::NextAcceleratedWidget() { 17 gfx::AcceleratedWidget DriWindowManager::NextAcceleratedWidget() {
19 // We're not using 0 since other code assumes that a 0 AcceleratedWidget is an 18 // We're not using 0 since other code assumes that a 0 AcceleratedWidget is an
20 // invalid widget. 19 // invalid widget.
21 return ++last_allocated_widget_; 20 return ++last_allocated_widget_;
22 } 21 }
23 22
24 void DriWindowManager::AddWindowDelegate( 23 void DriWindowManager::AddWindow(gfx::AcceleratedWidget widget,
25 gfx::AcceleratedWidget widget, 24 DriWindow* window) {
26 scoped_ptr<DriWindowDelegate> delegate) { 25 std::pair<WidgetToWindowMap::iterator, bool> result = window_map_.insert(
27 std::pair<WidgetToDelegateMap::iterator, bool> result = 26 std::pair<gfx::AcceleratedWidget, DriWindow*>(widget, window));
28 delegate_map_.add(widget, delegate.Pass()); 27 DCHECK(result.second) << "Window for " << widget << " already added.";
29 DCHECK(result.second) << "Delegate already added.";
30 } 28 }
31 29
32 scoped_ptr<DriWindowDelegate> DriWindowManager::RemoveWindowDelegate( 30 void DriWindowManager::RemoveWindow(gfx::AcceleratedWidget widget) {
33 gfx::AcceleratedWidget widget) { 31 WidgetToWindowMap::iterator it = window_map_.find(widget);
34 scoped_ptr<DriWindowDelegate> delegate = delegate_map_.take_and_erase(widget); 32 if (it != window_map_.end())
35 DCHECK(delegate) << "Attempting to remove non-existing delegate."; 33 window_map_.erase(it);
36 return delegate.Pass(); 34 else
35 NOTREACHED() << "Attempting to remove non-existing window " << widget;
37 } 36 }
38 37
39 DriWindowDelegate* DriWindowManager::GetWindowDelegate( 38 DriWindow* DriWindowManager::GetWindow(gfx::AcceleratedWidget widget) {
40 gfx::AcceleratedWidget widget) { 39 WidgetToWindowMap::iterator it = window_map_.find(widget);
41 WidgetToDelegateMap::iterator it = delegate_map_.find(widget); 40 if (it != window_map_.end())
42 if (it != delegate_map_.end())
43 return it->second; 41 return it->second;
44 42
45 NOTREACHED(); 43 NOTREACHED() << "Attempting to get non-existing window " << widget;
46 return NULL; 44 return NULL;
47 } 45 }
48 46
49 bool DriWindowManager::HasWindowDelegate(gfx::AcceleratedWidget widget) {
50 return delegate_map_.find(widget) != delegate_map_.end();
51 }
52
53 } // namespace ui 47 } // namespace ui
OLDNEW
« no previous file with comments | « ui/ozone/platform/dri/dri_window_manager.h ('k') | ui/ozone/platform/dri/gbm_surface_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698