diff options
Diffstat (limited to 'media/libstagefright/foundation/AMessage.cpp')
-rw-r--r-- | media/libstagefright/foundation/AMessage.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/media/libstagefright/foundation/AMessage.cpp b/media/libstagefright/foundation/AMessage.cpp index 7da9cb8..0e40acc 100644 --- a/media/libstagefright/foundation/AMessage.cpp +++ b/media/libstagefright/foundation/AMessage.cpp @@ -224,13 +224,22 @@ sp<AMessage> AMessage::dup() const { } case kTypeObject: - case kTypeMessage: { to->u.refValue = from->u.refValue; to->u.refValue->incStrong(msg.get()); break; } + case kTypeMessage: + { + sp<AMessage> copy = + static_cast<AMessage *>(from->u.refValue)->dup(); + + to->u.refValue = copy.get(); + to->u.refValue->incStrong(msg.get()); + break; + } + default: { to->u = from->u; |