From: Youngjae Shin Date: Thu, 31 Oct 2019 10:50:02 +0000 (+0900) Subject: fix crash of Media plugin X-Git-Tag: submit/tizen/20200406.072014~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=def3c94fbbdaf362523615234b566714d241518f;p=platform%2Fcore%2Fsystem%2Fmodes-plugins.git fix crash of Media plugin --- diff --git a/media/MediaPlayer.cpp b/media/MediaPlayer.cpp index af0acfb..7f4a4f6 100644 --- a/media/MediaPlayer.cpp +++ b/media/MediaPlayer.cpp @@ -22,20 +22,14 @@ MODES_NAMESPACE_USE; const std::string MediaPlayer::NAME = "player"; +player_h MediaPlayer::player = NULL; +sound_stream_info_h MediaPlayer::stream_info = NULL; MediaPlayer::MediaPlayer() - : MediaAction(NAME), player(NULL), stream_info(NULL) + : MediaAction(NAME) { } -void MediaPlayer::playerCompletedCb(void *data) -{ - RET_IF(NULL == data); - - MediaPlayer *h = (MediaPlayer *)data; - h->destroyPlayer(); -} - int MediaPlayer::createPlayer() { int soundRet = sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &stream_info); @@ -58,7 +52,7 @@ int MediaPlayer::createPlayer() return MODES_ERROR_NONE; } -int MediaPlayer::destroyPlayer() +void MediaPlayer::destroyPlayer(void *data) { if (stream_info) { sound_manager_destroy_stream_information(stream_info); @@ -74,8 +68,6 @@ int MediaPlayer::destroyPlayer() player_destroy(player); player = NULL; } - - return MODES_ERROR_NONE; } int MediaPlayer::set(std::string val) @@ -98,7 +90,7 @@ int MediaPlayer::set(std::string val) return MODES_ERROR_SYSTEM; } - ret = player_set_completed_cb(player, playerCompletedCb, this); + ret = player_set_completed_cb(player, destroyPlayer, NULL); if (PLAYER_ERROR_NONE != ret) { ERR("player_set_completed_cb() Fail(%s)", get_error_message(ret)); return MODES_ERROR_SYSTEM; @@ -115,5 +107,6 @@ int MediaPlayer::set(std::string val) int MediaPlayer::undo() { - return destroyPlayer(); + destroyPlayer(NULL); + return MODES_ERROR_NONE; } diff --git a/media/MediaPlayer.h b/media/MediaPlayer.h index b8ccf62..78f5922 100644 --- a/media/MediaPlayer.h +++ b/media/MediaPlayer.h @@ -32,11 +32,10 @@ public: int undo() override; private: int createPlayer(); - int destroyPlayer(); - static void playerCompletedCb(void *data); + static void destroyPlayer(void *data); - player_h player; - sound_stream_info_h stream_info; + static player_h player; + static sound_stream_info_h stream_info; }; MODES_NAMESPACE_END