Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52d98de4 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "fix segmentation fault of GraphicsComposerAidlCommandTest" into android13-tests-dev

parents ce004873 10750526
Loading
Loading
Loading
Loading
+10 −3
Original line number Original line Diff line number Diff line
@@ -488,10 +488,13 @@ bool VtsComposerClient::verifyComposerCallbackParams() {
}
}


bool VtsComposerClient::destroyAllLayers() {
bool VtsComposerClient::destroyAllLayers() {
    for (const auto& it : mDisplayResources) {
    std::unordered_map<int64_t, DisplayResource> physicalDisplays;
        const auto& [display, resource] = it;
    while (!mDisplayResources.empty()) {
        const auto& it = mDisplayResources.begin();
        const auto& [display, resource] = *it;


        for (auto layer : resource.layers) {
        while (!resource.layers.empty()) {
            auto layer = *resource.layers.begin();
            const auto status = destroyLayer(display, layer);
            const auto status = destroyLayer(display, layer);
            if (!status.isOk()) {
            if (!status.isOk()) {
                ALOGE("Unable to destroy all the layers, failed at layer %" PRId64 " with error %s",
                ALOGE("Unable to destroy all the layers, failed at layer %" PRId64 " with error %s",
@@ -507,8 +510,12 @@ bool VtsComposerClient::destroyAllLayers() {
                      status.getDescription().c_str());
                      status.getDescription().c_str());
                return false;
                return false;
            }
            }
        } else {
            auto extractIter = mDisplayResources.extract(it);
            physicalDisplays.insert(std::move(extractIter));
        }
        }
    }
    }
    mDisplayResources.swap(physicalDisplays);
    mDisplayResources.clear();
    mDisplayResources.clear();
    return true;
    return true;
}
}