diff options
-rw-r--r-- | sdm/libs/core/display_base.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp index 93970a46..503f71e9 100644 --- a/sdm/libs/core/display_base.cpp +++ b/sdm/libs/core/display_base.cpp @@ -121,17 +121,18 @@ CleanupOnError: } DisplayError DisplayBase::Deinit() { - lock_guard<recursive_mutex> obj(recursive_mutex_); - - color_modes_.clear(); - color_mode_map_.clear(); + { // Scope for lock + lock_guard<recursive_mutex> obj(recursive_mutex_); + color_modes_.clear(); + color_mode_map_.clear(); + + if (color_mgr_) { + delete color_mgr_; + color_mgr_ = NULL; + } - if (color_mgr_) { - delete color_mgr_; - color_mgr_ = NULL; + comp_manager_->UnregisterDisplay(display_comp_ctx_); } - - comp_manager_->UnregisterDisplay(display_comp_ctx_); HWEventsInterface::Destroy(hw_events_intf_); HWInterface::Destroy(hw_intf_); |