From 16a6946f3efdb166493ccd69d9e71af0efc73f62 Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 18 Oct 2019 09:41:44 +0100 Subject: [PATCH] Replace @MonotonicNonNull with @Nullable for final variables. @MonotonicNonNull is not useful if the variable is final, because it's only assigned once and guaranteed to keep it's current nullability in the same way as @MonotonicNonNull ensures it's kept non-null after checking. This way, the workarounds can also be removed. PiperOrigin-RevId: 275428656 --- .../exoplayer2/source/hls/HlsMediaChunk.java | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java index a55d1ac249..8845228900 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java @@ -196,11 +196,9 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; /** The url of the playlist from which this chunk was obtained. */ public final Uri playlistUrl; - // These should be final, but can't be due to - // https://github.com/typetools/checker-framework/issues/2215 - @MonotonicNonNull private DataSource initDataSource; - @MonotonicNonNull private DataSpec initDataSpec; - @MonotonicNonNull private Extractor previousExtractor; + @Nullable private final DataSource initDataSource; + @Nullable private final DataSpec initDataSpec; + @Nullable private final Extractor previousExtractor; private final boolean isMasterTimestampSource; private final boolean hasGapTag; @@ -260,12 +258,9 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; chunkMediaSequence); this.mediaSegmentEncrypted = mediaSegmentEncrypted; this.discontinuitySequenceNumber = discontinuitySequenceNumber; - // Workaround for https://github.com/typetools/checker-framework/issues/2215 - if (initDataSpec != null) { - this.initDataSpec = initDataSpec; - this.initDataSource = Assertions.checkNotNull(initDataSource); - initDataLoadRequired = true; - } + this.initDataSpec = initDataSpec; + this.initDataSource = initDataSource; + this.initDataLoadRequired = initDataSpec != null; this.initSegmentEncrypted = initSegmentEncrypted; this.playlistUrl = playlistUrl; this.isMasterTimestampSource = isMasterTimestampSource; @@ -274,10 +269,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; this.extractorFactory = extractorFactory; this.muxedCaptionFormats = muxedCaptionFormats; this.drmInitData = drmInitData; - // Workaround for https://github.com/typetools/checker-framework/issues/2215 - if (previousExtractor != null) { - this.previousExtractor = previousExtractor; - } + this.previousExtractor = previousExtractor; this.id3Decoder = id3Decoder; this.scratchId3Data = scratchId3Data; this.shouldSpliceIn = shouldSpliceIn;