From f3e80dddd7376aa9deeb27de25e1d50030a2ad98 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 10 Jun 2014 16:55:38 -0700 Subject: Offer a type-safe album art interface. Bug: 15514223 Change-Id: Iddfc33a00e6cd3779ca09c01a55f62b151f6ec95 --- media/libmediaplayerservice/MetadataRetrieverClient.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'media/libmediaplayerservice') diff --git a/media/libmediaplayerservice/MetadataRetrieverClient.cpp b/media/libmediaplayerservice/MetadataRetrieverClient.cpp index 348957f..5c9bd8f 100644 --- a/media/libmediaplayerservice/MetadataRetrieverClient.cpp +++ b/media/libmediaplayerservice/MetadataRetrieverClient.cpp @@ -230,7 +230,7 @@ sp MetadataRetrieverClient::extractAlbumArt() ALOGE("failed to extract an album art"); return NULL; } - size_t size = sizeof(MediaAlbumArt) + albumArt->mSize; + size_t size = sizeof(MediaAlbumArt) + albumArt->size(); sp heap = new MemoryHeapBase(size, 0, "MetadataRetrieverClient"); if (heap == NULL) { ALOGE("failed to create MemoryDealer object"); @@ -243,11 +243,9 @@ sp MetadataRetrieverClient::extractAlbumArt() delete albumArt; return NULL; } - MediaAlbumArt *albumArtCopy = static_cast(mAlbumArt->pointer()); - albumArtCopy->mSize = albumArt->mSize; - albumArtCopy->mData = (uint8_t *)albumArtCopy + sizeof(MediaAlbumArt); - memcpy(albumArtCopy->mData, albumArt->mData, albumArt->mSize); - delete albumArt; // Fix memory leakage + MediaAlbumArt::init((MediaAlbumArt *) mAlbumArt->pointer(), + albumArt->size(), albumArt->data()); + delete albumArt; // We've taken our copy. return mAlbumArt; } -- cgit v1.1