diff --git a/media/libaudiohal/impl/EffectsFactoryHalHidl.cpp b/media/libaudiohal/impl/EffectsFactoryHalHidl.cpp
index bc3b375..483f643 100644
--- a/media/libaudiohal/impl/EffectsFactoryHalHidl.cpp
+++ b/media/libaudiohal/impl/EffectsFactoryHalHidl.cpp
@@ -80,20 +80,18 @@
 
 EffectsFactoryHalHidl::EffectsFactoryHalHidl(sp<IEffectsFactory> effectsFactory)
     : EffectConversionHelperHidl("EffectsFactory"),
-      mEffectsFactory(std::move(effectsFactory)),
       mCache(new EffectDescriptorCache),
-      mEffectProcessings(
-              [&]() -> effectsConfig::EffectProcessings {
-                  effectsConfig::EffectProcessings processings;
-                  const auto& parseResult = effectsConfig::parse();
-                  if (!parseResult.parsedConfig) {
-                      return INVALID_EFFECT_PROCESSING;
-                  }
-                  return {parseResult.nbSkippedElement, parseResult.parsedConfig->preprocess,
-                          parseResult.parsedConfig->postprocess,
-                          parseResult.parsedConfig->deviceprocess};
-              }()) {
+      mEffectProcessings([&]() -> effectsConfig::EffectProcessings {
+          effectsConfig::EffectProcessings processings;
+          const auto& parseResult = effectsConfig::parse();
+          if (!parseResult.parsedConfig) {
+              return INVALID_EFFECT_PROCESSING;
+          }
+          return {parseResult.nbSkippedElement, parseResult.parsedConfig->preprocess,
+                  parseResult.parsedConfig->postprocess, parseResult.parsedConfig->deviceprocess};
+      }()) {
     ALOG_ASSERT(effectsFactory != nullptr, "Provided IEffectsFactory service is NULL");
+    mEffectsFactory = std::move(effectsFactory);
 }
 
 status_t EffectsFactoryHalHidl::queryNumberEffects(uint32_t *pNumEffects) {
diff --git a/media/libaudiohal/impl/EffectsFactoryHalHidl.h b/media/libaudiohal/impl/EffectsFactoryHalHidl.h
index 698c961..c64ca3a 100644
--- a/media/libaudiohal/impl/EffectsFactoryHalHidl.h
+++ b/media/libaudiohal/impl/EffectsFactoryHalHidl.h
@@ -66,8 +66,8 @@
     const effectsConfig::EffectProcessings& getProcessings() const override;
 
   private:
-    const sp<IEffectsFactory> mEffectsFactory;
-    const std::unique_ptr<EffectDescriptorCache> mCache;
+    sp<IEffectsFactory> mEffectsFactory;
+    std::unique_ptr<EffectDescriptorCache> mCache;
     // Configuration file parser result together with all processings from effect factory
     const effectsConfig::EffectProcessings mEffectProcessings;
 };
