From 996bc421ea90965e384c947f5a68394afb95bd88 Mon Sep 17 00:00:00 2001 From: Vishnu Nair Date: Tue, 16 Jul 2019 14:15:33 -0700 Subject: Properly merge flags when merging transactions Test: atest SurfaceFlinger_test Change-Id: Ib1446c5afe00fd2588f7682f33cbbc6d6eb6a1ea --- libs/gui/LayerState.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libs/gui/LayerState.cpp') diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp index 6066421faf..aa07cbe0ab 100644 --- a/libs/gui/LayerState.cpp +++ b/libs/gui/LayerState.cpp @@ -267,8 +267,9 @@ void layer_state_t::merge(const layer_state_t& other) { } if (other.what & eFlagsChanged) { what |= eFlagsChanged; - flags = other.flags; - mask = other.mask; + flags &= ~other.mask; + flags |= (other.flags & other.mask); + mask |= other.mask; } if (other.what & eLayerStackChanged) { what |= eLayerStackChanged; -- cgit v1.2.3-59-g8ed1b