summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/Client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/Client.cpp')
-rw-r--r--services/surfaceflinger/Client.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/services/surfaceflinger/Client.cpp b/services/surfaceflinger/Client.cpp
index c90024b863..077469b5e1 100644
--- a/services/surfaceflinger/Client.cpp
+++ b/services/surfaceflinger/Client.cpp
@@ -65,9 +65,14 @@ Client::~Client()
}
}
-void Client::setParentLayer(const sp<Layer>& parentLayer) {
+void Client::updateParent(const sp<Layer>& parentLayer) {
Mutex::Autolock _l(mLock);
- mParentLayer = parentLayer;
+
+ // If we didn't ever have a parent, then we must instead be
+ // relying on permissions and we never need a parent.
+ if (mParentLayer != nullptr) {
+ mParentLayer = parentLayer;
+ }
}
sp<Layer> Client::getParentLayer(bool* outParentDied) const {