From c58da703dfe8e54d5fb8b7c3689b822f5a076835 Mon Sep 17 00:00:00 2001 From: Andrzej Popowski Date: Mon, 8 Aug 2016 13:25:23 +0200 Subject: [PATCH] [Content] - fixing createThumbnail() function Change-Id: I834dc5a5b427b0cc50e48d14b13aed9b84965ae8 Signed-off-by: Andrzej Popowski --- src/content/content_manager.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/content/content_manager.cc b/src/content/content_manager.cc index 28140da..2673604 100644 --- a/src/content/content_manager.cc +++ b/src/content/content_manager.cc @@ -664,16 +664,18 @@ static bool playlist_content_member_cb(int playlist_member_id, media_info_h medi void CreateThumbnailCallback(media_content_error_e err, const char* path, void* user_data) { LoggerD("Enter"); + unsigned int* callbackId = (unsigned int*) user_data; + if (!(ContentManager::getInstance()->getContentInstance())) { // There is not instance already LoggerD("There is not instance now"); + delete callbackId; return; } - unsigned int callbackId = (unsigned int) user_data; picojson::object out; - out["callbackId"] = picojson::value(static_cast(callbackId)); + out["callbackId"] = picojson::value(static_cast(*callbackId)); if (MEDIA_CONTENT_ERROR_NONE == err) { out["result"] = picojson::value(std::string(path)); @@ -682,6 +684,8 @@ void CreateThumbnailCallback(media_content_error_e err, const char* path, void* PlatformResult result = ContentManager::getInstance()->convertError(err); LogAndReportError(result, &out, ("Failed to create a thumbnail")); } + + delete callbackId; common::Instance::PostMessage(ContentManager::getInstance()->getContentInstance(), picojson::value(out).serialize().c_str()); } @@ -1636,23 +1640,27 @@ int ContentManager::getNumberOfTracks(int id, int* result) { common::PlatformResult ContentManager::createThumbnail(const picojson::value& args) { LoggerD("Enter"); - unsigned int callbackId = static_cast(args.get("callbackId").get()); + unsigned int* callbackId = new unsigned int(static_cast(args.get("callbackId").get())); std::string id = args.get("id").get(); media_info_h media = NULL; int ret = media_info_get_media_from_db(id.c_str(), &media); if(MEDIA_CONTENT_ERROR_NONE != ret && nullptr == media) { + delete callbackId; return LogAndCreateResult(ErrorCode::ABORT_ERR, "Getting media is failed.", ("Getting media is failed: %d (%s)", ret, get_error_message(ret))); } - ret = media_info_create_thumbnail(media, CreateThumbnailCallback, (void*) callbackId); + ret = media_info_create_thumbnail(media, CreateThumbnailCallback, /* (void*) callbackId */ nullptr); media_info_destroy(media); if(MEDIA_CONTENT_ERROR_NONE != ret) { + delete callbackId; return LogAndCreateResult(ErrorCode::ABORT_ERR, "Creating thumbnail failed.", ("Creating thumbnail failed: %d (%s)", ret, get_error_message(ret))); } + delete callbackId; + return PlatformResult(ErrorCode::NO_ERROR); } -- 2.7.4