From 38a7fa2ae37236952e5fb0186fddb4f6da5990d8 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Thu, 15 Oct 2009 18:08:15 -0700 Subject: [PATCH] fix [2182249] [MR1] valgrind error in surface flinger --- include/private/ui/RegionHelper.h | 15 +++++++++------ libs/ui/tests/region.cpp | 7 +++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/include/private/ui/RegionHelper.h b/include/private/ui/RegionHelper.h index 926fddb17..8d76533c5 100644 --- a/include/private/ui/RegionHelper.h +++ b/include/private/ui/RegionHelper.h @@ -86,7 +86,7 @@ public: rasterizer(current); } } - } while(!spannerInner.isDone()); + } while(!spannerInner.isDone()); } while(!spanner.isDone()); } @@ -220,18 +220,21 @@ private: } inline void prepare(int inside) { - SpannerBase::lhs_head = lhs.rects->left + lhs.dx; - SpannerBase::lhs_tail = lhs.rects->right + lhs.dx; - SpannerBase::rhs_head = rhs.rects->left + rhs.dx; - SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; if (inside == SpannerBase::lhs_before_rhs) { + SpannerBase::lhs_head = lhs.rects->left + lhs.dx; + SpannerBase::lhs_tail = lhs.rects->right + lhs.dx; SpannerBase::rhs_head = max_value; SpannerBase::rhs_tail = max_value; } else if (inside == SpannerBase::lhs_after_rhs) { SpannerBase::lhs_head = max_value; SpannerBase::lhs_tail = max_value; + SpannerBase::rhs_head = rhs.rects->left + rhs.dx; + SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; } else { - // use both spans + SpannerBase::lhs_head = lhs.rects->left + lhs.dx; + SpannerBase::lhs_tail = lhs.rects->right + lhs.dx; + SpannerBase::rhs_head = rhs.rects->left + rhs.dx; + SpannerBase::rhs_tail = rhs.rects->right + rhs.dx; } } diff --git a/libs/ui/tests/region.cpp b/libs/ui/tests/region.cpp index 0deb2ba9e..ef15de974 100644 --- a/libs/ui/tests/region.cpp +++ b/libs/ui/tests/region.cpp @@ -25,9 +25,16 @@ using namespace android; int main() { + Region empty; Region reg0( Rect( 0, 0, 100, 100 ) ); Region reg1 = reg0; Region reg2, reg3; + + Region reg4 = empty | reg1; + Region reg5 = reg1 | empty; + + reg4.dump("reg4"); + reg5.dump("reg5"); reg0.dump("reg0"); reg1.dump("reg1");