diff options
author | Glenn Kasten <gkasten@google.com> | 2014-03-13 15:08:51 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2014-03-14 14:49:37 -0700 |
commit | 3ef14ef30359376006a233f6a21a165d4b65a7df (patch) | |
tree | 78947d5e8dee6f3942fdc7891dd40777b21dd7de /services/audioflinger/AudioFlinger.cpp | |
parent | 15e5798908ccac14e10c84834eaf08c42931bd06 (diff) | |
download | frameworks_av-3ef14ef30359376006a233f6a21a165d4b65a7df.zip frameworks_av-3ef14ef30359376006a233f6a21a165d4b65a7df.tar.gz frameworks_av-3ef14ef30359376006a233f6a21a165d4b65a7df.tar.bz2 |
Make error handling more similar for output and capture
And simplify error case
Change-Id: I0bb1ec252945d672cc4cef137977b912f1b23d51
Diffstat (limited to 'services/audioflinger/AudioFlinger.cpp')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 9953f64..50179c5 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -622,15 +622,17 @@ sp<IAudioTrack> AudioFlinger::createTrack( } - if (lStatus == NO_ERROR) { - trackHandle = new TrackHandle(track); - } else { - // remove local strong reference to Client before deleting the Track so that the Client - // destructor is called by the TrackBase destructor with mLock held + if (lStatus != NO_ERROR) { + // remove local strong reference to Client before deleting the Track so that the + // Client destructor is called by the TrackBase destructor with mLock held client.clear(); track.clear(); + goto Exit; } + // return handle to client + trackHandle = new TrackHandle(track); + Exit: *status = lStatus; return trackHandle; |