Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80b1dc17 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "MediaPlayer: fix use after free for mMediaTimeProvider"

parents ff3abed9 37b6f259
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -2645,7 +2645,7 @@ public class MediaPlayer extends PlayerBase
     */
    private synchronized void setSubtitleAnchor() {
        if ((mSubtitleController == null) && (ActivityThread.currentApplication() != null)) {
            getMediaTimeProvider();
            final TimeProvider timeProvider = (TimeProvider) getMediaTimeProvider();
            final HandlerThread thread = new HandlerThread("SetSubtitleAnchorThread");
            thread.start();
            Handler handler = new Handler(thread.getLooper());
@@ -2653,7 +2653,8 @@ public class MediaPlayer extends PlayerBase
                @Override
                public void run() {
                    Context context = ActivityThread.currentApplication();
                    mSubtitleController = new SubtitleController(context, mTimeProvider, MediaPlayer.this);
                    mSubtitleController =
                            new SubtitleController(context, timeProvider, MediaPlayer.this);
                    mSubtitleController.setAnchor(new Anchor() {
                        @Override
                        public void setSubtitleWidget(RenderingWidget subtitleWidget) {
@@ -2661,7 +2662,7 @@ public class MediaPlayer extends PlayerBase

                        @Override
                        public Looper getSubtitleLooper() {
                            return mTimeProvider.mEventHandler.getLooper();
                            return timeProvider.mEventHandler.getLooper();
                        }
                    });
                    thread.getLooper().quitSafely();
+3 −1
Original line number Diff line number Diff line
@@ -263,8 +263,10 @@ public abstract class SubtitleTrack implements MediaTimeProvider.OnMediaTimeList
        }
        updateView(mActiveCues);
        mNextScheduledTimeMs = -1;
        if (mTimeProvider != null) {
            mTimeProvider.notifyAt(MediaTimeProvider.NO_TIME, this);
        }
    }

    /** @hide */
    protected MediaTimeProvider mTimeProvider;