From ead3c6d508b941f5d86546300b52893ed064ac82 Mon Sep 17 00:00:00 2001 From: "sergeyu@chromium.org" Date: Fri, 24 May 2013 21:07:20 +0000 Subject: [PATCH] Fix bugs in DesktopRegion::IntersectWith() and DesktopRect::IntersectWith(). IntersectWith() didn't work correctly which breaks screen capturers in chromium. BUG=crbug.com/243160 R=alexeypa@chromium.org, wez@chromium.org Review URL: https://webrtc-codereview.appspot.com/1560004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4102 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/modules/desktop_capture/desktop_geometry.cc | 2 +- webrtc/modules/desktop_capture/desktop_region.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/webrtc/modules/desktop_capture/desktop_geometry.cc b/webrtc/modules/desktop_capture/desktop_geometry.cc index 051e62633..5811a8dac 100644 --- a/webrtc/modules/desktop_capture/desktop_geometry.cc +++ b/webrtc/modules/desktop_capture/desktop_geometry.cc @@ -18,7 +18,7 @@ void DesktopRect::IntersectWith(const DesktopRect& rect) { left_ = std::max(left(), rect.left()); top_ = std::max(top(), rect.top()); right_ = std::min(right(), rect.right()); - bottom_ = std::min(bottom(), rect.top()); + bottom_ = std::min(bottom(), rect.bottom()); if (is_empty()) { left_ = 0; top_ = 0; diff --git a/webrtc/modules/desktop_capture/desktop_region.cc b/webrtc/modules/desktop_capture/desktop_region.cc index b843034be..71398b31c 100644 --- a/webrtc/modules/desktop_capture/desktop_region.cc +++ b/webrtc/modules/desktop_capture/desktop_region.cc @@ -47,7 +47,8 @@ void DesktopRegion::IntersectWith(const DesktopRect& rect) { remove_empty_rects = remove_empty_rects | it->is_empty(); } if (remove_empty_rects) { - RectsList new_rects(rects_.size()); + RectsList new_rects; + new_rects.reserve(rects_.size()); for (RectsList::iterator it = rects_.begin(); it != rects_.end(); ++it) { if (!it->is_empty()) new_rects.push_back(*it);