Remove strong pointer in contructor to "this"

Bug: 69110631
Test: NFC on/off
Change-Id: I6c0173df6b6f49e7c07e9670c827b2944c6fe23f
diff --git a/nfc/1.0/default/Nfc.cpp b/nfc/1.0/default/Nfc.cpp
index d337a36..fcdcbbc 100644
--- a/nfc/1.0/default/Nfc.cpp
+++ b/nfc/1.0/default/Nfc.cpp
@@ -14,9 +14,7 @@
 
 sp<INfcClientCallback> Nfc::mCallback = nullptr;
 
-Nfc::Nfc(nfc_nci_device_t* device) : mDevice(device),
-    mDeathRecipient(new NfcDeathRecipient(this)) {
-}
+Nfc::Nfc(nfc_nci_device_t* device) : mDevice(device) {}
 
 // Methods from ::android::hardware::nfc::V1_0::INfc follow.
 ::android::hardware::Return<NfcStatus> Nfc::open(const sp<INfcClientCallback>& clientCallback)  {
@@ -25,7 +23,7 @@
     if (mDevice == nullptr || mCallback == nullptr) {
         return NfcStatus::FAILED;
     }
-    mCallback->linkToDeath(mDeathRecipient, 0 /*cookie*/);
+    mCallback->linkToDeath(this, 0 /*cookie*/);
     int ret = mDevice->open(mDevice, eventCallback, dataCallback);
     return ret == 0 ? NfcStatus::OK : NfcStatus::FAILED;
 }
@@ -58,7 +56,7 @@
     if (mDevice == nullptr || mCallback == nullptr) {
         return NfcStatus::FAILED;
     }
-    mCallback->unlinkToDeath(mDeathRecipient);
+    mCallback->unlinkToDeath(this);
     return mDevice->close(mDevice) ? NfcStatus::FAILED : NfcStatus::OK;
 }
 
diff --git a/nfc/1.0/default/Nfc.h b/nfc/1.0/default/Nfc.h
index d8787fd..ab95d06 100644
--- a/nfc/1.0/default/Nfc.h
+++ b/nfc/1.0/default/Nfc.h
@@ -19,50 +19,45 @@
 using ::android::hardware::hidl_string;
 using ::android::sp;
 
-struct NfcDeathRecipient : hidl_death_recipient {
-    NfcDeathRecipient(const sp<INfc> nfc) : mNfc(nfc) {
+struct Nfc : public INfc, public hidl_death_recipient {
+    Nfc(nfc_nci_device_t* device);
+    ::android::hardware::Return<NfcStatus> open(
+        const sp<INfcClientCallback>& clientCallback) override;
+    ::android::hardware::Return<uint32_t> write(const hidl_vec<uint8_t>& data) override;
+    ::android::hardware::Return<NfcStatus> coreInitialized(const hidl_vec<uint8_t>& data) override;
+    ::android::hardware::Return<NfcStatus> prediscover() override;
+    ::android::hardware::Return<NfcStatus> close() override;
+    ::android::hardware::Return<NfcStatus> controlGranted() override;
+    ::android::hardware::Return<NfcStatus> powerCycle() override;
+
+    static void eventCallback(uint8_t event, uint8_t status) {
+        if (mCallback != nullptr) {
+            auto ret = mCallback->sendEvent((::android::hardware::nfc::V1_0::NfcEvent)event,
+                                            (::android::hardware::nfc::V1_0::NfcStatus)status);
+            if (!ret.isOk()) {
+                ALOGW("Failed to call back into NFC process.");
+            }
+        }
+    }
+    static void dataCallback(uint16_t data_len, uint8_t* p_data) {
+        hidl_vec<uint8_t> data;
+        data.setToExternal(p_data, data_len);
+        if (mCallback != nullptr) {
+            auto ret = mCallback->sendData(data);
+            if (!ret.isOk()) {
+                ALOGW("Failed to call back into NFC process.");
+            }
+        }
     }
 
-    virtual void serviceDied(uint64_t /*cookie*/, const wp<::android::hidl::base::V1_0::IBase>& /*who*/) {
-        mNfc->close();
+    virtual void serviceDied(uint64_t /*cookie*/,
+                             const wp<::android::hidl::base::V1_0::IBase>& /*who*/) {
+        close();
     }
-    sp<INfc> mNfc;
-};
 
-struct Nfc : public INfc {
-  Nfc(nfc_nci_device_t* device);
-  ::android::hardware::Return<NfcStatus> open(const sp<INfcClientCallback>& clientCallback)  override;
-  ::android::hardware::Return<uint32_t> write(const hidl_vec<uint8_t>& data)  override;
-  ::android::hardware::Return<NfcStatus> coreInitialized(const hidl_vec<uint8_t>& data)  override;
-  ::android::hardware::Return<NfcStatus> prediscover()  override;
-  ::android::hardware::Return<NfcStatus> close()  override;
-  ::android::hardware::Return<NfcStatus> controlGranted()  override;
-  ::android::hardware::Return<NfcStatus> powerCycle()  override;
-
-  static void eventCallback(uint8_t event, uint8_t status) {
-      if (mCallback != nullptr) {
-          auto ret = mCallback->sendEvent(
-                  (::android::hardware::nfc::V1_0::NfcEvent) event,
-                  (::android::hardware::nfc::V1_0::NfcStatus) status);
-          if (!ret.isOk()) {
-              ALOGW("Failed to call back into NFC process.");
-          }
-      }
-  }
-  static void dataCallback(uint16_t data_len, uint8_t* p_data) {
-      hidl_vec<uint8_t> data;
-      data.setToExternal(p_data, data_len);
-      if (mCallback != nullptr) {
-          auto ret = mCallback->sendData(data);
-          if (!ret.isOk()) {
-              ALOGW("Failed to call back into NFC process.");
-          }
-      }
-  }
-  private:
+   private:
     static sp<INfcClientCallback> mCallback;
     const nfc_nci_device_t*       mDevice;
-    sp<NfcDeathRecipient>         mDeathRecipient;
 };
 
 extern "C" INfc* HIDL_FETCH_INfc(const char* name);