fix [2182249] [MR1] valgrind error in surface flinger

This commit is contained in:
Mathias Agopian 2009-10-15 18:08:15 -07:00
parent f7f46955f7
commit 38a7fa2ae3
2 changed files with 16 additions and 6 deletions

View File

@ -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;
}
}

View File

@ -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");