From f9170b89c41dc4a5f39ce33bdf621c01397ff660 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Mon, 17 Jan 2022 20:44:53 +0000 Subject: [PATCH] Remove last SampleQueue.release allocation By making AllocationNode fields non-final PiperOrigin-RevId: 422403816 --- .../exoplayer/source/SampleDataQueue.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleDataQueue.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleDataQueue.java index d6e44c64ca..9c7c3c7602 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleDataQueue.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleDataQueue.java @@ -66,7 +66,7 @@ import java.util.Arrays; /** Clears all sample data. */ public void reset() { clearAllocationNodes(firstAllocationNode); - firstAllocationNode = new AllocationNode(0, allocationLength); + firstAllocationNode.reset(/* startPosition= */ 0, allocationLength); readAllocationNode = firstAllocationNode; writeAllocationNode = firstAllocationNode; totalBytesWritten = 0; @@ -462,9 +462,9 @@ import java.util.Arrays; private static final class AllocationNode implements Allocator.AllocationNode { /** The absolute position of the start of the data (inclusive). */ - public final long startPosition; + public long startPosition; /** The absolute position of the end of the data (exclusive). */ - public final long endPosition; + public long endPosition; /** * The {@link Allocation}, or {@code null} if the node is not {@link #initialize initialized}. */ @@ -481,6 +481,17 @@ import java.util.Arrays; * initialized. */ public AllocationNode(long startPosition, int allocationLength) { + reset(startPosition, allocationLength); + } + + /** + * Sets the {@link #startPosition} and the {@link Allocation} length. + * + *

Must only be called for uninitialized instances, where {@link #allocation} is {@code + * null}. + */ + public void reset(long startPosition, int allocationLength) { + Assertions.checkState(allocation == null); this.startPosition = startPosition; this.endPosition = startPosition + allocationLength; }