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

Side by Side Diff: ui/base/gestures/gesture_recognizer_impl.cc

Issue 10826117: Fix memory leak in ~GestureRecognizerImpl (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Simplified the CL to call dtor during dtor. Created 8 years, 4 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/base/gestures/gesture_recognizer_impl.h" 5 #include "ui/base/gestures/gesture_recognizer_impl.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "ui/base/events.h" 10 #include "ui/base/events.h"
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 163
164 //////////////////////////////////////////////////////////////////////////////// 164 ////////////////////////////////////////////////////////////////////////////////
165 // GestureRecognizerImpl, public: 165 // GestureRecognizerImpl, public:
166 166
167 GestureRecognizerImpl::GestureRecognizerImpl(GestureEventHelper* helper) 167 GestureRecognizerImpl::GestureRecognizerImpl(GestureEventHelper* helper)
168 : helper_(helper) { 168 : helper_(helper) {
169 gesture_consumer_ignorer_.reset(new GestureConsumerIgnorer()); 169 gesture_consumer_ignorer_.reset(new GestureConsumerIgnorer());
170 } 170 }
171 171
172 GestureRecognizerImpl::~GestureRecognizerImpl() { 172 GestureRecognizerImpl::~GestureRecognizerImpl() {
173 std::map<GestureConsumer*, GestureSequence*>::iterator i;
174 for (i = consumer_sequence_.begin(); i != consumer_sequence_.end(); ++i)
sky 2012/08/03 20:05:07 Move iterators inside the for loop, that way you d
girard 2012/08/03 20:14:45 Nice! I was hoping there might be a utility to ta
sadrul 2012/08/03 20:16:42 Nice! Thanks!
175 delete i->second;
176 std::map<GestureConsumer*, TouchEventQueue*>::iterator i2;
177 for (i2 = event_queue_.begin(); i2 != event_queue_.end(); ++i2)
178 delete i2->second;
173 } 179 }
174 180
175 // Checks if this finger is already down, if so, returns the current target. 181 // Checks if this finger is already down, if so, returns the current target.
176 // Otherwise, returns NULL. 182 // Otherwise, returns NULL.
177 GestureConsumer* GestureRecognizerImpl::GetTouchLockedTarget( 183 GestureConsumer* GestureRecognizerImpl::GetTouchLockedTarget(
178 TouchEvent* event) { 184 TouchEvent* event) {
179 return touch_id_target_[event->GetTouchId()]; 185 return touch_id_target_[event->GetTouchId()];
180 } 186 }
181 187
182 GestureConsumer* GestureRecognizerImpl::GetTargetForGestureEvent( 188 GestureConsumer* GestureRecognizerImpl::GetTargetForGestureEvent(
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 RemoveConsumerFromMap(consumer, &touch_id_target_); 346 RemoveConsumerFromMap(consumer, &touch_id_target_);
341 RemoveConsumerFromMap(consumer, &touch_id_target_for_gestures_); 347 RemoveConsumerFromMap(consumer, &touch_id_target_for_gestures_);
342 } 348 }
343 349
344 // GestureRecognizer, static 350 // GestureRecognizer, static
345 GestureRecognizer* GestureRecognizer::Create(GestureEventHelper* helper) { 351 GestureRecognizer* GestureRecognizer::Create(GestureEventHelper* helper) {
346 return new GestureRecognizerImpl(helper); 352 return new GestureRecognizerImpl(helper);
347 } 353 }
348 354
349 } // namespace ui 355 } // namespace ui
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698