summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-08-12 09:32:18 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-08-12 09:32:18 -0700
commitaa56ede87936f28f368e14e3b08d31de4005bb30 (patch)
treeb11efe0a00f616a178111ff9e48ccdf60a7b24cb
parent2c46b6d2b168b08cea9bc28a25e1e74bd5684778 (diff)
parent0386d04b19619b03b6bce830010e11d31d3f8a5c (diff)
downloadframeworks_base-aa56ede87936f28f368e14e3b08d31de4005bb30.zip
frameworks_base-aa56ede87936f28f368e14e3b08d31de4005bb30.tar.gz
frameworks_base-aa56ede87936f28f368e14e3b08d31de4005bb30.tar.bz2
am 0386d04b: am 581581fe: Merge "Fix all fd leaks in authoring engine" into gingerbread
Merge commit '0386d04b19619b03b6bce830010e11d31d3f8a5c' * commit '0386d04b19619b03b6bce830010e11d31d3f8a5c': Fix all fd leaks in authoring engine
-rw-r--r--media/libmedia/IMediaRecorder.cpp2
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp10
2 files changed, 7 insertions, 5 deletions
diff --git a/media/libmedia/IMediaRecorder.cpp b/media/libmedia/IMediaRecorder.cpp
index 4eb63e8..947ff34 100644
--- a/media/libmedia/IMediaRecorder.cpp
+++ b/media/libmedia/IMediaRecorder.cpp
@@ -23,6 +23,7 @@
#include <camera/ICamera.h>
#include <media/IMediaRecorderClient.h>
#include <media/IMediaRecorder.h>
+#include <unistd.h>
namespace android {
@@ -373,6 +374,7 @@ status_t BnMediaRecorder::onTransact(
int64_t offset = data.readInt64();
int64_t length = data.readInt64();
reply->writeInt32(setOutputFile(fd, offset, length));
+ ::close(fd);
return NO_ERROR;
} break;
case SET_VIDEO_SIZE: {
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 5756e53..daa20a8 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -56,11 +56,6 @@ StagefrightRecorder::StagefrightRecorder()
StagefrightRecorder::~StagefrightRecorder() {
LOGV("Destructor");
stop();
-
- if (mOutputFd >= 0) {
- ::close(mOutputFd);
- mOutputFd = -1;
- }
}
status_t StagefrightRecorder::init() {
@@ -1158,6 +1153,11 @@ status_t StagefrightRecorder::stop() {
mFlags = 0;
}
+ if (mOutputFd >= 0) {
+ ::close(mOutputFd);
+ mOutputFd = -1;
+ }
+
return OK;
}