Skip to content

Commit 6a6977e

Browse files
chethaaseAndroid (Google) Code Review
authored andcommitted
Merge "Fix 5266335: bad DIRTY/invalidation logic"
2 parents 8a48a2b + f186f30 commit 6a6977e

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

core/java/android/view/View.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8193,6 +8193,7 @@ public void invalidate(Rect dirty) {
81938193
(mPrivateFlags & INVALIDATED) != INVALIDATED) {
81948194
mPrivateFlags &= ~DRAWING_CACHE_VALID;
81958195
mPrivateFlags |= INVALIDATED;
8196+
mPrivateFlags |= DIRTY;
81968197
final ViewParent p = mParent;
81978198
final AttachInfo ai = mAttachInfo;
81988199
//noinspection PointlessBooleanExpression,ConstantConditions
@@ -8239,6 +8240,7 @@ public void invalidate(int l, int t, int r, int b) {
82398240
(mPrivateFlags & INVALIDATED) != INVALIDATED) {
82408241
mPrivateFlags &= ~DRAWING_CACHE_VALID;
82418242
mPrivateFlags |= INVALIDATED;
8243+
mPrivateFlags |= DIRTY;
82428244
final ViewParent p = mParent;
82438245
final AttachInfo ai = mAttachInfo;
82448246
//noinspection PointlessBooleanExpression,ConstantConditions
@@ -8294,6 +8296,7 @@ void invalidate(boolean invalidateCache) {
82948296
(mPrivateFlags & INVALIDATED) != INVALIDATED || isOpaque() != mLastIsOpaque) {
82958297
mLastIsOpaque = isOpaque();
82968298
mPrivateFlags &= ~DRAWN;
8299+
mPrivateFlags |= DIRTY;
82978300
if (invalidateCache) {
82988301
mPrivateFlags |= INVALIDATED;
82998302
mPrivateFlags &= ~DRAWING_CACHE_VALID;
@@ -8334,6 +8337,7 @@ public void fastInvalidate() {
83348337
((View) mParent).mPrivateFlags |= INVALIDATED;
83358338
}
83368339
mPrivateFlags &= ~DRAWN;
8340+
mPrivateFlags |= DIRTY;
83378341
mPrivateFlags |= INVALIDATED;
83388342
mPrivateFlags &= ~DRAWING_CACHE_VALID;
83398343
if (mParent != null && mAttachInfo != null) {

0 commit comments

Comments
 (0)