SurfaceFlinger: Avoid race in flag manager

Initializing the flag manager from one binder
thread while using it from another doesn't seem
very safe. This is in fact what could happen if
onBootFinished overlaps with dump, the objects constructor
doesn't do anything in particular so we can just default
construct it as a value member instead.

Bug: 219059993
Test: Existing tests pass
Change-Id: I7162812b000d67adb9ed745d31d8bac8b2e8f73e
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index bd831ff..a9b71e5 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -707,10 +707,9 @@
     const nsecs_t duration = now - mBootTime;
     ALOGI("Boot is finished (%ld ms)", long(ns2ms(duration)) );
 
-    mFlagManager = std::make_unique<android::FlagManager>();
     mFrameTracer->initialize();
     mFrameTimeline->onBootFinished();
-    getRenderEngine().setEnableTracing(mFlagManager->use_skia_tracing());
+    getRenderEngine().setEnableTracing(mFlagManager.use_skia_tracing());
 
     // wait patiently for the window manager death
     const String16 name("window");
@@ -745,7 +744,7 @@
             tidList.emplace_back(*renderEngineTid);
         }
         mPowerAdvisor.onBootFinished();
-        mPowerAdvisor.enablePowerHint(mFlagManager->use_adpf_cpu_hint());
+        mPowerAdvisor.enablePowerHint(mFlagManager.use_adpf_cpu_hint());
         if (mPowerAdvisor.usePowerHintSession()) {
             mPowerAdvisor.startPowerHintSession(tidList);
         }
@@ -5436,9 +5435,7 @@
     /*
      * Dump flag/property manager state
      */
-    if (mFlagManager != nullptr) {
-        mFlagManager->dump(result);
-    }
+    mFlagManager.dump(result);
 
     result.append(mTimeStats->miniDump());
     result.append("\n");