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) {