Camera: fix open_legacy crash

If the torch callback is fired during CameraProvider
constructor, the sp will cause it being deleted
when the callback returns.

Test: fix the crash
Bug: 35216523
Change-Id: I133d866ed603d6c7e549b57d20a911af7a7e0698
diff --git a/camera/provider/2.4/default/CameraProvider.cpp b/camera/provider/2.4/default/CameraProvider.cpp
index f1a66a8..a5a02b4 100644
--- a/camera/provider/2.4/default/CameraProvider.cpp
+++ b/camera/provider/2.4/default/CameraProvider.cpp
@@ -51,8 +51,7 @@
         const struct camera_module_callbacks* callbacks,
         int camera_id,
         int new_status) {
-    ALOGI("%s++", __FUNCTION__);
-    sp<CameraProvider> cp = const_cast<CameraProvider*>(
+    CameraProvider* cp = const_cast<CameraProvider*>(
             static_cast<const CameraProvider*>(callbacks));
 
     if (cp == nullptr) {
@@ -60,7 +59,7 @@
         return;
     }
 
-    ALOGI("%s resolved provider %p", __FUNCTION__, cp.get());
+    ALOGI("%s resolved provider %p", __FUNCTION__, cp);
 
     Mutex::Autolock _l(cp->mCbLock);
     char cameraId[kMaxCameraIdLen];
@@ -76,15 +75,13 @@
             }
         }
     }
-    ALOGI("%s--", __FUNCTION__);
 }
 
 void CameraProvider::sTorchModeStatusChange(
         const struct camera_module_callbacks* callbacks,
         const char* camera_id,
         int new_status) {
-    ALOGI("%s++", __FUNCTION__);
-    sp<CameraProvider> cp = const_cast<CameraProvider*>(
+    CameraProvider* cp = const_cast<CameraProvider*>(
             static_cast<const CameraProvider*>(callbacks));
 
     if (cp == nullptr) {
@@ -92,7 +89,7 @@
         return;
     }
 
-    ALOGI("%s resolved provider %p", __FUNCTION__, cp.get());
+    ALOGI("%s resolved provider %p", __FUNCTION__, cp);
 
     Mutex::Autolock _l(cp->mCbLock);
     if (cp->mCallbacks != nullptr) {
@@ -105,7 +102,6 @@
             }
         }
     }
-    ALOGI("%s--", __FUNCTION__);
 }
 
 Status CameraProvider::getHidlStatus(int status) {