SF: Fix HWComposer destruction order
The DisplayData vector was being destroyed before the HWC2::Device, but
HWC2::Layer destruction calls back into HWComposer::destroyLayer, which
looks up DisplayData for the display being destroyed.
Bug: 74619554
Test: dvr_display-test
Change-Id: I6260ae16b0896f8992db8ebde63ad4bfc0a0d532
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index d827fd2..b1daf12 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -92,7 +92,9 @@
HWComposer::HWComposer(std::unique_ptr<android::Hwc2::Composer> composer)
: mHwcDevice(std::make_unique<HWC2::Device>(std::move(composer))) {}
-HWComposer::~HWComposer() = default;
+HWComposer::~HWComposer() {
+ mDisplayData.clear();
+}
void HWComposer::registerCallback(HWC2::ComposerCallback* callback,
int32_t sequenceId) {