From 3f24d4433ae36004672567b8d22cfb0f88fa4c96 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Thu, 11 Jul 2019 11:33:38 +0100 Subject: [PATCH] Optimize DrmSession reference replacement Potentially avoids up to two calls to synchronized methods PiperOrigin-RevId: 257578304 --- .../java/com/google/android/exoplayer2/drm/DrmSession.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java index df45323ca3..722ab946f0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java @@ -31,10 +31,15 @@ public interface DrmSession { /** * Invokes {@code newSession's} {@link #acquireReference()} and {@code previousSession's} {@link - * #releaseReference()} in that order. Does nothing for passed null values. + * #releaseReference()} in that order. Null arguments are ignored. Does nothing if {@code + * previousSession} and {@code newSession} are the same session. */ static void replaceSessionReferences( @Nullable DrmSession previousSession, @Nullable DrmSession newSession) { + if (previousSession == newSession) { + // Do nothing. + return; + } if (newSession != null) { newSession.acquireReference(); }