da3a5b45cb
Added patch series from upstream PR 127 to remove the dependency to kodi-platform, switch dependency to kodi. Added missing dependency to tinyxml. Switch license file to LICENSE.md. Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
290 lines
8.3 KiB
Diff
290 lines
8.3 KiB
Diff
From 00d0d90fdac9257ed02e24677ba4f008f2486c94 Mon Sep 17 00:00:00 2001
|
|
From: phunkyfish <phunkyfish@gmail.com>
|
|
Date: Wed, 7 Oct 2020 18:00:57 +0100
|
|
Subject: [PATCH] Remove SAFE_DELETE
|
|
|
|
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
---
|
|
src/lib/tsreader/FileReader.cpp | 9 ++++++++-
|
|
src/lib/tsreader/MemoryBuffer.cpp | 22 +++++++++++++---------
|
|
src/lib/tsreader/MultiFileReader.cpp | 11 ++++++++++-
|
|
src/lib/tsreader/TSReader.cpp | 25 +++++++++++++++++--------
|
|
src/pvrclient-mediaportal.cpp | 27 ++++++++++++++++++---------
|
|
src/utils.h | 2 --
|
|
6 files changed, 66 insertions(+), 30 deletions(-)
|
|
|
|
diff --git a/src/lib/tsreader/FileReader.cpp b/src/lib/tsreader/FileReader.cpp
|
|
index ac8725c..3df22f2 100644
|
|
--- a/src/lib/tsreader/FileReader.cpp
|
|
+++ b/src/lib/tsreader/FileReader.cpp
|
|
@@ -38,7 +38,6 @@
|
|
#include "p8-platform/threads/threads.h"
|
|
#include <algorithm> //std::min, std::max
|
|
#include "p8-platform/util/timeutils.h" // for usleep
|
|
-#include "p8-platform/util/util.h"
|
|
#include "utils.h"
|
|
#include <errno.h>
|
|
|
|
@@ -58,6 +57,14 @@
|
|
/* calcuate bitrate for file while reading */
|
|
#define READ_BITRATE 0x10
|
|
|
|
+template<typename T> void SafeDelete(T*& p)
|
|
+{
|
|
+ if (p)
|
|
+ {
|
|
+ delete p;
|
|
+ p = nullptr;
|
|
+ }
|
|
+}
|
|
namespace MPTV
|
|
{
|
|
FileReader::FileReader() :
|
|
diff --git a/src/lib/tsreader/MemoryBuffer.cpp b/src/lib/tsreader/MemoryBuffer.cpp
|
|
index 6d411d7..609b575 100644
|
|
--- a/src/lib/tsreader/MemoryBuffer.cpp
|
|
+++ b/src/lib/tsreader/MemoryBuffer.cpp
|
|
@@ -31,7 +31,6 @@
|
|
|
|
#include "p8-platform/util/timeutils.h"
|
|
#include "p8-platform/threads/mutex.h"
|
|
-#include "p8-platform/util/util.h"
|
|
#include "MemoryBuffer.h"
|
|
#include <kodi/General.h> //for kodi::Log
|
|
#include "TSDebug.h"
|
|
@@ -59,11 +58,14 @@ void CMemoryBuffer::Clear()
|
|
P8PLATFORM::CLockObject BufferLock(m_BufferLock);
|
|
std::vector<BufferItem *>::iterator it = m_Array.begin();
|
|
|
|
- for ( ; it != m_Array.end(); ++it )
|
|
+ for (auto& item : m_Array)
|
|
{
|
|
- BufferItem *item = *it;
|
|
- SAFE_DELETE_ARRAY(item->data);
|
|
- SAFE_DELETE(item);
|
|
+ if (item)
|
|
+ {
|
|
+ if (item->data)
|
|
+ delete[] item->data;
|
|
+ delete item;
|
|
+ }
|
|
}
|
|
|
|
m_Array.clear();
|
|
@@ -150,8 +152,9 @@ size_t CMemoryBuffer::ReadFromBuffer(unsigned char *pbData, size_t lDataLength)
|
|
if (item->nOffset >= item->nDataLength)
|
|
{
|
|
m_Array.erase(m_Array.begin());
|
|
- SAFE_DELETE_ARRAY(item->data);
|
|
- SAFE_DELETE(item);
|
|
+ if (item->data)
|
|
+ delete[] item->data;
|
|
+ delete item;
|
|
}
|
|
}
|
|
return bytesWritten;
|
|
@@ -182,8 +185,9 @@ long CMemoryBuffer::PutBuffer(unsigned char *pbData, size_t lDataLength)
|
|
|
|
m_BytesInBuffer -= copyLength;
|
|
m_Array.erase(m_Array.begin());
|
|
- SAFE_DELETE_ARRAY(item2->data);
|
|
- SAFE_DELETE(item2);
|
|
+ if (item2->data)
|
|
+ delete[] item2->data;
|
|
+ delete item2;
|
|
}
|
|
if (m_BytesInBuffer > 0)
|
|
{
|
|
diff --git a/src/lib/tsreader/MultiFileReader.cpp b/src/lib/tsreader/MultiFileReader.cpp
|
|
index b8005b3..3828e06 100644
|
|
--- a/src/lib/tsreader/MultiFileReader.cpp
|
|
+++ b/src/lib/tsreader/MultiFileReader.cpp
|
|
@@ -48,6 +48,15 @@ using namespace P8PLATFORM;
|
|
//Maximum time in msec to wait for the buffer file to become available - Needed for DVB radio (this sometimes takes some time)
|
|
#define MAX_BUFFER_TIMEOUT 1500
|
|
|
|
+template<typename T> void SafeDelete(T*& p)
|
|
+{
|
|
+ if (p)
|
|
+ {
|
|
+ delete p;
|
|
+ p = nullptr;
|
|
+ }
|
|
+}
|
|
+
|
|
namespace MPTV
|
|
{
|
|
MultiFileReader::MultiFileReader() :
|
|
@@ -484,7 +493,7 @@ namespace MPTV
|
|
|
|
TSDEBUG(ADDON_LOG_DEBUG, "MultiFileReader: Removing file %s\n", file->filename.c_str());
|
|
|
|
- SAFE_DELETE(file);
|
|
+ SafeDelete(file);
|
|
m_tsFiles.erase(m_tsFiles.begin());
|
|
|
|
filesToRemove--;
|
|
diff --git a/src/lib/tsreader/TSReader.cpp b/src/lib/tsreader/TSReader.cpp
|
|
index 3f9725b..4a72f4f 100644
|
|
--- a/src/lib/tsreader/TSReader.cpp
|
|
+++ b/src/lib/tsreader/TSReader.cpp
|
|
@@ -44,6 +44,15 @@
|
|
|
|
using namespace std;
|
|
|
|
+template<typename T> void SafeDelete(T*& p)
|
|
+{
|
|
+ if (p)
|
|
+ {
|
|
+ delete p;
|
|
+ p = nullptr;
|
|
+ }
|
|
+}
|
|
+
|
|
namespace MPTV
|
|
{
|
|
CTsReader::CTsReader() : m_demultiplexer(*this),
|
|
@@ -69,10 +78,10 @@ namespace MPTV
|
|
|
|
CTsReader::~CTsReader(void)
|
|
{
|
|
- SAFE_DELETE(m_fileReader);
|
|
+ SafeDelete(m_fileReader);
|
|
#ifdef LIVE555
|
|
- SAFE_DELETE(m_buffer);
|
|
- SAFE_DELETE(m_rtspClient);
|
|
+ SafeDelete(m_buffer);
|
|
+ SafeDelete(m_rtspClient);
|
|
#endif
|
|
}
|
|
|
|
@@ -225,8 +234,8 @@ namespace MPTV
|
|
|
|
if ( !m_rtspClient->OpenStream(m_fileName.c_str()) )
|
|
{
|
|
- SAFE_DELETE(m_rtspClient);
|
|
- SAFE_DELETE(m_buffer);
|
|
+ SafeDelete(m_rtspClient);
|
|
+ SafeDelete(m_buffer);
|
|
return E_FAIL;
|
|
}
|
|
|
|
@@ -318,8 +327,8 @@ namespace MPTV
|
|
#ifdef LIVE555
|
|
kodi::Log(ADDON_LOG_INFO, "TsReader: closing RTSP client");
|
|
m_rtspClient->Stop();
|
|
- SAFE_DELETE(m_rtspClient);
|
|
- SAFE_DELETE(m_buffer);
|
|
+ SafeDelete(m_rtspClient);
|
|
+ SafeDelete(m_buffer);
|
|
#endif
|
|
}
|
|
else
|
|
@@ -327,7 +336,7 @@ namespace MPTV
|
|
kodi::Log(ADDON_LOG_INFO, "TsReader: closing file");
|
|
m_fileReader->CloseFile();
|
|
}
|
|
- SAFE_DELETE(m_fileReader);
|
|
+ SafeDelete(m_fileReader);
|
|
m_State = State_Stopped;
|
|
}
|
|
}
|
|
diff --git a/src/pvrclient-mediaportal.cpp b/src/pvrclient-mediaportal.cpp
|
|
index fdb31e7..5479950 100644
|
|
--- a/src/pvrclient-mediaportal.cpp
|
|
+++ b/src/pvrclient-mediaportal.cpp
|
|
@@ -42,6 +42,15 @@ int g_iTVServerKodiBuild = 0;
|
|
#define TVSERVERKODI_RECOMMENDED_VERSION_STRING "1.2.3.122 till 1.20.0.140"
|
|
#define TVSERVERKODI_RECOMMENDED_VERSION_BUILD 140
|
|
|
|
+template<typename T> void SafeDelete(T*& p)
|
|
+{
|
|
+ if (p)
|
|
+ {
|
|
+ delete p;
|
|
+ p = nullptr;
|
|
+ }
|
|
+}
|
|
+
|
|
/************************************************************/
|
|
/** Class interface */
|
|
|
|
@@ -75,10 +84,10 @@ cPVRClientMediaPortal::~cPVRClientMediaPortal()
|
|
kodi::Log(ADDON_LOG_DEBUG, "->~cPVRClientMediaPortal()");
|
|
Disconnect();
|
|
|
|
- SAFE_DELETE(Timer::lifetimeValues);
|
|
- SAFE_DELETE(m_tcpclient);
|
|
- SAFE_DELETE(m_genretable);
|
|
- SAFE_DELETE(m_lastSelectedRecording);
|
|
+ SafeDelete(Timer::lifetimeValues);
|
|
+ SafeDelete(m_tcpclient);
|
|
+ SafeDelete(m_genretable);
|
|
+ SafeDelete(m_lastSelectedRecording);
|
|
}
|
|
|
|
string cPVRClientMediaPortal::SendCommand(const char* command)
|
|
@@ -321,7 +330,7 @@ void cPVRClientMediaPortal::Disconnect()
|
|
if ((CSettings::Get().GetStreamingMethod()==TSReader) && (m_tsreader != NULL))
|
|
{
|
|
m_tsreader->Close();
|
|
- SAFE_DELETE(m_tsreader);
|
|
+ SafeDelete(m_tsreader);
|
|
}
|
|
SendCommand("StopTimeshift:\n");
|
|
}
|
|
@@ -1748,7 +1757,7 @@ bool cPVRClientMediaPortal::OpenLiveStream(const kodi::addon::PVRChannel& channe
|
|
m_iCurrentChannel = -1;
|
|
if (m_tsreader != nullptr)
|
|
{
|
|
- SAFE_DELETE(m_tsreader);
|
|
+ SafeDelete(m_tsreader);
|
|
}
|
|
return false;
|
|
}
|
|
@@ -1959,7 +1968,7 @@ void cPVRClientMediaPortal::CloseLiveStream(void)
|
|
if (CSettings::Get().GetStreamingMethod() == TSReader && m_tsreader)
|
|
{
|
|
m_tsreader->Close();
|
|
- SAFE_DELETE(m_tsreader);
|
|
+ SafeDelete(m_tsreader);
|
|
}
|
|
result = SendCommand("StopTimeshift:\n");
|
|
kodi::Log(ADDON_LOG_INFO, "CloseLiveStream: %s", result.c_str());
|
|
@@ -2141,7 +2150,7 @@ void cPVRClientMediaPortal::CloseRecordedStream(void)
|
|
{
|
|
kodi::Log(ADDON_LOG_INFO, "CloseRecordedStream: Stop TSReader...");
|
|
m_tsreader->Close();
|
|
- SAFE_DELETE(m_tsreader);
|
|
+ SafeDelete(m_tsreader);
|
|
}
|
|
else
|
|
{
|
|
@@ -2409,7 +2418,7 @@ cRecording* cPVRClientMediaPortal::GetRecordingInfo(const kodi::addon::PVRRecord
|
|
{
|
|
return m_lastSelectedRecording;
|
|
}
|
|
- SAFE_DELETE(m_lastSelectedRecording);
|
|
+ SafeDelete(m_lastSelectedRecording);
|
|
}
|
|
|
|
if (!IsUp())
|
|
diff --git a/src/utils.h b/src/utils.h
|
|
index 823b46e..d03569a 100644
|
|
--- a/src/utils.h
|
|
+++ b/src/utils.h
|
|
@@ -11,13 +11,11 @@
|
|
#include <vector>
|
|
#include <ctime>
|
|
#include "uri.h"
|
|
-#include "p8-platform/util/util.h"
|
|
|
|
#ifdef TARGET_WINDOWS
|
|
#include "windows/WindowsUtils.h"
|
|
#endif
|
|
|
|
-
|
|
/**
|
|
* String tokenize
|
|
* Split string using the given delimiter into a vector of substrings
|