Loading cmds/installd/otapreopt.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -889,6 +889,7 @@ private: CHECK(EndsWith(path, "/")); path = path + "oat"; if (access(path.c_str(), F_OK) == 0) { LOG(INFO) << "Skipping A/B OTA preopt of already preopted package " << apk_path; return true; } } Loading @@ -900,7 +901,7 @@ private: // this tool will wipe the OTA artifact cache and try again (for robustness after // a failed OTA with remaining cache artifacts). if (access(apk_path, F_OK) != 0) { LOG(WARNING) << "Skipping preopt of non-existing package " << apk_path; LOG(WARNING) << "Skipping A/B OTA preopt of non-existing package " << apk_path; return true; } Loading services/surfaceflinger/BufferLayer.cpp +0 −3 Original line number Diff line number Diff line Loading @@ -262,9 +262,6 @@ void BufferLayer::onDraw(const RenderArea& renderArea, const Region& clip, } void BufferLayer::onLayerDisplayed(const sp<Fence>& releaseFence) { if (mHwcLayers.empty()) { return; } mSurfaceFlingerConsumer->setReleaseFence(releaseFence); } Loading services/surfaceflinger/DisplayDevice.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -325,6 +325,14 @@ const Vector< sp<Layer> >& DisplayDevice::getVisibleLayersSortedByZ() const { return mVisibleLayersSortedByZ; } void DisplayDevice::setLayersNeedingFences(const Vector< sp<Layer> >& layers) { mLayersNeedingFences = layers; } const Vector< sp<Layer> >& DisplayDevice::getLayersNeedingFences() const { return mLayersNeedingFences; } Region DisplayDevice::getDirtyRegion(bool repaintEverything) const { Region dirty; if (repaintEverything) { Loading services/surfaceflinger/DisplayDevice.h +4 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,8 @@ public: void setVisibleLayersSortedByZ(const Vector< sp<Layer> >& layers); const Vector< sp<Layer> >& getVisibleLayersSortedByZ() const; void setLayersNeedingFences(const Vector< sp<Layer> >& layers); const Vector< sp<Layer> >& getLayersNeedingFences() const; Region getDirtyRegion(bool repaintEverything) const; void setLayerStack(uint32_t stack); Loading Loading @@ -214,6 +216,8 @@ private: // list of visible layers on that display Vector< sp<Layer> > mVisibleLayersSortedByZ; // list of layers needing fences Vector< sp<Layer> > mLayersNeedingFences; /* * Transaction state Loading services/surfaceflinger/Layer.cpp +25 −13 Original line number Diff line number Diff line Loading @@ -217,9 +217,9 @@ bool Layer::createHwcLayer(HWComposer* hwc, int32_t hwcId) { return true; } void Layer::destroyHwcLayer(int32_t hwcId) { bool Layer::destroyHwcLayer(int32_t hwcId) { if (mHwcLayers.count(hwcId) == 0) { return; return false; } auto& hwcInfo = mHwcLayers[hwcId]; LOG_ALWAYS_FATAL_IF(hwcInfo.layer == nullptr, "Attempt to destroy null layer"); Loading @@ -228,6 +228,8 @@ void Layer::destroyHwcLayer(int32_t hwcId) { // The layer destroyed listener should have cleared the entry from // mHwcLayers. Verify that. LOG_ALWAYS_FATAL_IF(mHwcLayers.count(hwcId) != 0, "Stale layer entry in mHwcLayers"); return true; } void Layer::destroyAllHwcLayers() { Loading Loading @@ -1100,6 +1102,19 @@ bool Layer::setChildLayer(const sp<Layer>& childLayer, int32_t z) { return true; } bool Layer::setChildRelativeLayer(const sp<Layer>& childLayer, const sp<IBinder>& relativeToHandle, int32_t relativeZ) { ssize_t idx = mCurrentChildren.indexOf(childLayer); if (idx < 0) { return false; } if (childLayer->setRelativeLayer(relativeToHandle, relativeZ)) { mCurrentChildren.removeAt(idx); mCurrentChildren.add(childLayer); } return true; } bool Layer::setLayer(int32_t z) { if (mCurrentState.z == z) return false; mCurrentState.sequence++; Loading Loading @@ -1558,17 +1573,14 @@ bool Layer::reparent(const sp<IBinder>& newParentHandle) { } bool Layer::detachChildren() { traverseInZOrder(LayerVector::StateSet::Drawing, [this](Layer* child) { if (child == this) { return; } for (const sp<Layer>& child : mCurrentChildren) { sp<Client> parentClient = mClientRef.promote(); sp<Client> client(child->mClientRef.promote()); if (client != nullptr && parentClient != client) { client->detachLayer(child); client->detachLayer(child.get()); child->detachChildren(); } } }); return true; } Loading Loading @@ -1601,11 +1613,7 @@ __attribute__((no_sanitize("unsigned-integer-overflow"))) LayerVector Layer::mak const LayerVector& children = useDrawing ? mDrawingChildren : mCurrentChildren; const State& state = useDrawing ? mDrawingState : mCurrentState; if (state.zOrderRelatives.size() == 0) { return children; } LayerVector traverse; for (const wp<Layer>& weakRelative : state.zOrderRelatives) { sp<Layer> strongRelative = weakRelative.promote(); if (strongRelative != nullptr) { Loading @@ -1614,6 +1622,10 @@ __attribute__((no_sanitize("unsigned-integer-overflow"))) LayerVector Layer::mak } for (const sp<Layer>& child : children) { const State& childState = useDrawing ? child->mDrawingState : child->mCurrentState; if (childState.zOrderRelativeOf != nullptr) { continue; } traverse.add(child); } Loading Loading
cmds/installd/otapreopt.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -889,6 +889,7 @@ private: CHECK(EndsWith(path, "/")); path = path + "oat"; if (access(path.c_str(), F_OK) == 0) { LOG(INFO) << "Skipping A/B OTA preopt of already preopted package " << apk_path; return true; } } Loading @@ -900,7 +901,7 @@ private: // this tool will wipe the OTA artifact cache and try again (for robustness after // a failed OTA with remaining cache artifacts). if (access(apk_path, F_OK) != 0) { LOG(WARNING) << "Skipping preopt of non-existing package " << apk_path; LOG(WARNING) << "Skipping A/B OTA preopt of non-existing package " << apk_path; return true; } Loading
services/surfaceflinger/BufferLayer.cpp +0 −3 Original line number Diff line number Diff line Loading @@ -262,9 +262,6 @@ void BufferLayer::onDraw(const RenderArea& renderArea, const Region& clip, } void BufferLayer::onLayerDisplayed(const sp<Fence>& releaseFence) { if (mHwcLayers.empty()) { return; } mSurfaceFlingerConsumer->setReleaseFence(releaseFence); } Loading
services/surfaceflinger/DisplayDevice.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -325,6 +325,14 @@ const Vector< sp<Layer> >& DisplayDevice::getVisibleLayersSortedByZ() const { return mVisibleLayersSortedByZ; } void DisplayDevice::setLayersNeedingFences(const Vector< sp<Layer> >& layers) { mLayersNeedingFences = layers; } const Vector< sp<Layer> >& DisplayDevice::getLayersNeedingFences() const { return mLayersNeedingFences; } Region DisplayDevice::getDirtyRegion(bool repaintEverything) const { Region dirty; if (repaintEverything) { Loading
services/surfaceflinger/DisplayDevice.h +4 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,8 @@ public: void setVisibleLayersSortedByZ(const Vector< sp<Layer> >& layers); const Vector< sp<Layer> >& getVisibleLayersSortedByZ() const; void setLayersNeedingFences(const Vector< sp<Layer> >& layers); const Vector< sp<Layer> >& getLayersNeedingFences() const; Region getDirtyRegion(bool repaintEverything) const; void setLayerStack(uint32_t stack); Loading Loading @@ -214,6 +216,8 @@ private: // list of visible layers on that display Vector< sp<Layer> > mVisibleLayersSortedByZ; // list of layers needing fences Vector< sp<Layer> > mLayersNeedingFences; /* * Transaction state Loading
services/surfaceflinger/Layer.cpp +25 −13 Original line number Diff line number Diff line Loading @@ -217,9 +217,9 @@ bool Layer::createHwcLayer(HWComposer* hwc, int32_t hwcId) { return true; } void Layer::destroyHwcLayer(int32_t hwcId) { bool Layer::destroyHwcLayer(int32_t hwcId) { if (mHwcLayers.count(hwcId) == 0) { return; return false; } auto& hwcInfo = mHwcLayers[hwcId]; LOG_ALWAYS_FATAL_IF(hwcInfo.layer == nullptr, "Attempt to destroy null layer"); Loading @@ -228,6 +228,8 @@ void Layer::destroyHwcLayer(int32_t hwcId) { // The layer destroyed listener should have cleared the entry from // mHwcLayers. Verify that. LOG_ALWAYS_FATAL_IF(mHwcLayers.count(hwcId) != 0, "Stale layer entry in mHwcLayers"); return true; } void Layer::destroyAllHwcLayers() { Loading Loading @@ -1100,6 +1102,19 @@ bool Layer::setChildLayer(const sp<Layer>& childLayer, int32_t z) { return true; } bool Layer::setChildRelativeLayer(const sp<Layer>& childLayer, const sp<IBinder>& relativeToHandle, int32_t relativeZ) { ssize_t idx = mCurrentChildren.indexOf(childLayer); if (idx < 0) { return false; } if (childLayer->setRelativeLayer(relativeToHandle, relativeZ)) { mCurrentChildren.removeAt(idx); mCurrentChildren.add(childLayer); } return true; } bool Layer::setLayer(int32_t z) { if (mCurrentState.z == z) return false; mCurrentState.sequence++; Loading Loading @@ -1558,17 +1573,14 @@ bool Layer::reparent(const sp<IBinder>& newParentHandle) { } bool Layer::detachChildren() { traverseInZOrder(LayerVector::StateSet::Drawing, [this](Layer* child) { if (child == this) { return; } for (const sp<Layer>& child : mCurrentChildren) { sp<Client> parentClient = mClientRef.promote(); sp<Client> client(child->mClientRef.promote()); if (client != nullptr && parentClient != client) { client->detachLayer(child); client->detachLayer(child.get()); child->detachChildren(); } } }); return true; } Loading Loading @@ -1601,11 +1613,7 @@ __attribute__((no_sanitize("unsigned-integer-overflow"))) LayerVector Layer::mak const LayerVector& children = useDrawing ? mDrawingChildren : mCurrentChildren; const State& state = useDrawing ? mDrawingState : mCurrentState; if (state.zOrderRelatives.size() == 0) { return children; } LayerVector traverse; for (const wp<Layer>& weakRelative : state.zOrderRelatives) { sp<Layer> strongRelative = weakRelative.promote(); if (strongRelative != nullptr) { Loading @@ -1614,6 +1622,10 @@ __attribute__((no_sanitize("unsigned-integer-overflow"))) LayerVector Layer::mak } for (const sp<Layer>& child : children) { const State& childState = useDrawing ? child->mDrawingState : child->mCurrentState; if (childState.zOrderRelativeOf != nullptr) { continue; } traverse.add(child); } Loading