Bp: clear DRs in onLastStrongRef

This way, if unlink is not called, the binder will properly
destruct. Currently linkToDeath takes a weakRef, and when
BR_DEAD_BINDER is received, userspace binder sends
BC_CLEAR_DEATH_NOTIFICATION for each death notification. Then, when it
receives BR_CLEAR_DEATH_NOTIFICATION_DONE (maybe later?), it clears the
weak ref. Right now, ~BpBinder also clears these. However, by moving
this clearing up to onLastStrongRef, forgotten unlinks will no longer
cause a cycle (that is only cleared when the service dies).

Bug: 134576445
Test: manually linking to death many times without unlinking.
Change-Id: Ib10550025caefa5dd674a5690c1165386cf89190
1 file changed