@@ -148,10 +148,10 @@ status_t MediaPlayer::setDataSource(
148148 const sp<IMediaPlayerService>& service (getMediaPlayerService ());
149149 if (service != 0 ) {
150150 sp<IMediaPlayer> player (service->create (getpid (), this , mAudioSessionId ));
151- err = attachNewPlayer (player);
152- if (err == NO_ERROR) {
153- err = mPlayer ->setDataSource (url, headers);
151+ if (NO_ERROR != player->setDataSource (url, headers)) {
152+ player.clear ();
154153 }
154+ err = attachNewPlayer (player);
155155 }
156156 }
157157 return err;
@@ -164,10 +164,10 @@ status_t MediaPlayer::setDataSource(int fd, int64_t offset, int64_t length)
164164 const sp<IMediaPlayerService>& service (getMediaPlayerService ());
165165 if (service != 0 ) {
166166 sp<IMediaPlayer> player (service->create (getpid (), this , mAudioSessionId ));
167- err = attachNewPlayer (player);
168- if (err == NO_ERROR) {
169- err = mPlayer ->setDataSource (fd, offset, length);
167+ if (NO_ERROR != player->setDataSource (fd, offset, length)) {
168+ player.clear ();
170169 }
170+ err = attachNewPlayer (player);
171171 }
172172 return err;
173173}
@@ -179,10 +179,10 @@ status_t MediaPlayer::setDataSource(const sp<IStreamSource> &source)
179179 const sp<IMediaPlayerService>& service (getMediaPlayerService ());
180180 if (service != 0 ) {
181181 sp<IMediaPlayer> player (service->create (getpid (), this , mAudioSessionId ));
182- err = attachNewPlayer (player);
183- if (err == NO_ERROR) {
184- err = mPlayer ->setDataSource (source);
182+ if (NO_ERROR != player->setDataSource (source)) {
183+ player.clear ();
185184 }
185+ err = attachNewPlayer (player);
186186 }
187187 return err;
188188}
0 commit comments