summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/foundation
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-03-09 14:33:01 -0800
committerAndreas Huber <andih@google.com>2012-03-09 14:33:01 -0800
commitbdaa29a9bc63d8d0d86879e40286a06655623322 (patch)
tree6bd01eab72f7df5ba9bb5c76eb3f6136bcd638ef /media/libstagefright/foundation
parent5aaeb0d64fc98f9b019a4378eb39f0ee49ee6ec4 (diff)
downloadframeworks_av-bdaa29a9bc63d8d0d86879e40286a06655623322.zip
frameworks_av-bdaa29a9bc63d8d0d86879e40286a06655623322.tar.gz
frameworks_av-bdaa29a9bc63d8d0d86879e40286a06655623322.tar.bz2
Fix memory leak when carrying ABuffer* in AMessages.
Change-Id: Icb4770ca238d316e6dd2d89159357a8fdb504ea9
Diffstat (limited to 'media/libstagefright/foundation')
-rw-r--r--media/libstagefright/foundation/AMessage.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libstagefright/foundation/AMessage.cpp b/media/libstagefright/foundation/AMessage.cpp
index 9a00186..8b01ac6 100644
--- a/media/libstagefright/foundation/AMessage.cpp
+++ b/media/libstagefright/foundation/AMessage.cpp
@@ -74,6 +74,7 @@ void AMessage::freeItem(Item *item) {
case kTypeObject:
case kTypeMessage:
+ case kTypeBuffer:
{
if (item->u.refValue != NULL) {
item->u.refValue->decStrong(this);
@@ -292,6 +293,7 @@ sp<AMessage> AMessage::dup() const {
}
case kTypeObject:
+ case kTypeBuffer:
{
to->u.refValue = from->u.refValue;
to->u.refValue->incStrong(msg.get());
@@ -396,6 +398,10 @@ AString AMessage::debugString(int32_t indent) const {
tmp = StringPrintf(
"RefBase *%s = %p", item.mName, item.u.refValue);
break;
+ case kTypeBuffer:
+ tmp = StringPrintf(
+ "ABuffer *%s = %p", item.mName, item.u.refValue);
+ break;
case kTypeMessage:
tmp = StringPrintf(
"AMessage %s = %s",