IPCThreadState: Import Xiaomi Android 13 robustness modification

Change-Id: Ieeb92da71d41acea5ad53a6ae30f43289d8b6fae
Reviewed-on: https://review.blissroms.org/c/platform_system_libhwbinder/+/18041
Tested-by: Jack <jackeagle102@gmail.com>
Reviewed-by: Jack <jackeagle102@gmail.com>
diff --git a/IPCThreadState.cpp b/IPCThreadState.cpp
index aa050fc..e3b5716 100644
--- a/IPCThreadState.cpp
+++ b/IPCThreadState.cpp
@@ -497,7 +497,11 @@
             while (mPendingWeakDerefs.size() > 0) {
                 RefBase::weakref_type* refs = mPendingWeakDerefs[0];
                 mPendingWeakDerefs.removeAt(0);
-                refs->decWeak(mProcess.get());
+                // MIUI MOD: workaround to improve robustness
+                if (refs) {
+                    refs->decWeak(mProcess.get());
+                }
+                // END
             }
 
             if (mPendingStrongDerefs.size() > 0) {
@@ -507,7 +511,11 @@
                 // the decWeak() first.
                 BHwBinder* obj = mPendingStrongDerefs[0];
                 mPendingStrongDerefs.removeAt(0);
-                obj->decStrong(mProcess.get());
+                // MIUI MOD: workaround to improve robustness
+                if (obj) {
+                    obj->decStrong(mProcess.get());
+                }
+                // END
             }
         }
     }