supplement to a04e899d44ad94c0f280183e254d264ce7e6c882 , memcpy don't work ok with std::string

Origin commit data
------------------
Branch: ni/coolstream
Commit: 6264abf542
Author: Jacek Jendrzej <overx300@gmail.com>
Date: 2018-03-25 (Sun, 25 Mar 2018)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
Jacek Jendrzej
2018-03-25 22:48:12 +02:00
committed by vanhofen
parent 84f0e78268
commit 76524cae6b

View File

@@ -143,6 +143,8 @@ CInfoViewer::CInfoViewer ()
CInfoViewer::~CInfoViewer() CInfoViewer::~CInfoViewer()
{ {
ResetModules(); ResetModules();
if(timescale)
delete timescale;
} }
void CInfoViewer::Init() void CInfoViewer::Init()
@@ -1656,6 +1658,16 @@ void CInfoViewer::sendNoEpg(const t_channel_id for_channel_id)
} }
} }
void copy_info(CSectionsdClient::CurrentNextInfo _info, CSectionsdClient::CurrentNextInfo _oldinfo)
{
_oldinfo.current_uniqueKey = _info.current_uniqueKey;
_oldinfo.current_name = _info.current_name;
_oldinfo.current_fsk = _info.current_fsk;
_oldinfo.next_uniqueKey = _info.next_uniqueKey;
_oldinfo.next_name = _info.next_name;
_oldinfo.flags = _info.flags;
}
void CInfoViewer::getEPG(const t_channel_id for_channel_id, CSectionsdClient::CurrentNextInfo &info) void CInfoViewer::getEPG(const t_channel_id for_channel_id, CSectionsdClient::CurrentNextInfo &info)
{ {
/* to clear the oldinfo for channels without epg, call getEPG() with for_channel_id = 0 */ /* to clear the oldinfo for channels without epg, call getEPG() with for_channel_id = 0 */
@@ -1669,7 +1681,7 @@ void CInfoViewer::getEPG(const t_channel_id for_channel_id, CSectionsdClient::Cu
/* of there is no EPG, send an event so that parental lock can work */ /* of there is no EPG, send an event so that parental lock can work */
if (info.current_uniqueKey == 0 && info.next_uniqueKey == 0) { if (info.current_uniqueKey == 0 && info.next_uniqueKey == 0) {
memcpy(&oldinfo, &info, sizeof(CSectionsdClient::CurrentNextInfo)); copy_info(info,oldinfo);
sendNoEpg(for_channel_id); sendNoEpg(for_channel_id);
return; return;
} }
@@ -1689,7 +1701,7 @@ void CInfoViewer::getEPG(const t_channel_id for_channel_id, CSectionsdClient::Cu
else else
msg = NeutrinoMessages::EVT_NOEPG_YET; msg = NeutrinoMessages::EVT_NOEPG_YET;
g_RCInput->postMsg(msg, (const neutrino_msg_data_t)p, false); // data is pointer to allocated memory g_RCInput->postMsg(msg, (const neutrino_msg_data_t)p, false); // data is pointer to allocated memory
memcpy(&oldinfo, &info, sizeof(CSectionsdClient::CurrentNextInfo)); copy_info(info,oldinfo);
} }
} }