Use WeakReference#refersTo() when possible

For a given WeakReference<T> ref,

  ref.refersTo(obj)

is more efficient than

  ref.get() == obj.

This CL applies the above rule to

  RemoteInputConnectionImpl

for a better performance.

This is mechanical refactoring.  There must be no observable behavior
change.

Bug: 182259171
Test: presubmit
Change-Id: Iddf73b0fcb16a14f6c024da4a7db136d4fea4900
This commit is contained in:
Yohei Yukawa
2022-10-17 20:18:44 -07:00
parent 7942003609
commit 699fc515e0
2 changed files with 18 additions and 2 deletions

View File

@@ -994,7 +994,7 @@ public final class InputMethodManager {
return mServedInputConnection != null
&& mServedInputConnection.isActive()
&& mServedInputConnection.getServedView() == view;
&& mServedInputConnection.isAssociatedWith(view);
}
}

View File

@@ -218,10 +218,26 @@ final class RemoteInputConnectionImpl extends IRemoteInputConnection.Stub {
return mParentInputMethodManager.isActive() && !isFinished();
}
public View getServedView() {
private View getServedView() {
return mServedView.get();
}
/**
* Queries if the given {@link View} is associated with this {@link RemoteInputConnectionImpl}
* or not.
*
* @param view {@link View}.
* @return {@code true} if the given {@link View} is not null and is associated with this
* {@link RemoteInputConnectionImpl}.
*/
@AnyThread
public boolean isAssociatedWith(@Nullable View view) {
if (view == null) {
return false;
}
return mServedView.refersTo(view);
}
/**
* Gets and resets {@link #mHasPendingImmediateCursorAnchorInfoUpdate}.
*