diff options
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 2de169dcb1..646402ccad 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -1334,10 +1334,8 @@ bool Layer::setOverrideScalingMode(int32_t scalingMode) { return true; } -bool Layer::setMetadata(LayerMetadata data) { - bool changed = data.mMap != mCurrentState.metadata.mMap; - if (!changed) return false; - mCurrentState.metadata = std::move(data); +bool Layer::setMetadata(const LayerMetadata& data) { + if (!mCurrentState.metadata.merge(data, true /* eraseEmpty */)) return false; mCurrentState.sequence++; mCurrentState.modified = true; setTransactionFlags(eTransactionNeeded); |