summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioRecord.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2013-09-24 11:52:37 -0700
committerGlenn Kasten <gkasten@google.com>2013-09-24 12:12:47 -0700
commite93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f (patch)
tree4de6f04ad4abc14bb0e777bcb02863196c59e34b /media/libmedia/AudioRecord.cpp
parent402dfba6dcd68f5fd8d8921f9751f3e47eb1449d (diff)
downloadframeworks_av-e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f.zip
frameworks_av-e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f.tar.gz
frameworks_av-e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f.tar.bz2
Cleanup openRecord error handling
Bug: 10888816 Change-Id: I84897dd7d30b370640b54e928f230604b873cb68
Diffstat (limited to 'media/libmedia/AudioRecord.cpp')
-rw-r--r--media/libmedia/AudioRecord.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp
index c5a7777..666fafa 100644
--- a/media/libmedia/AudioRecord.cpp
+++ b/media/libmedia/AudioRecord.cpp
@@ -474,7 +474,7 @@ status_t AudioRecord::openRecord_l(size_t epoch)
ALOGE_IF(originalSessionId != 0 && mSessionId != originalSessionId,
"session ID changed from %d to %d", originalSessionId, mSessionId);
- if (record == 0) {
+ if (record == 0 || status != NO_ERROR) {
ALOGE("AudioFlinger could not create record track, status: %d", status);
AudioSystem::releaseInput(input);
return status;
@@ -484,6 +484,11 @@ status_t AudioRecord::openRecord_l(size_t epoch)
ALOGE("Could not get control block");
return NO_INIT;
}
+ void *iMemPointer = iMem->pointer();
+ if (iMemPointer == NULL) {
+ ALOGE("Could not get control block pointer");
+ return NO_INIT;
+ }
if (mAudioRecord != 0) {
mAudioRecord->asBinder()->unlinkToDeath(mDeathNotifier, this);
mDeathNotifier.clear();
@@ -491,7 +496,7 @@ status_t AudioRecord::openRecord_l(size_t epoch)
mInput = input;
mAudioRecord = record;
mCblkMemory = iMem;
- audio_track_cblk_t* cblk = static_cast<audio_track_cblk_t*>(iMem->pointer());
+ audio_track_cblk_t* cblk = static_cast<audio_track_cblk_t*>(iMemPointer);
mCblk = cblk;
// FIXME missing fast track frameCount logic
mAwaitBoost = false;