From 51137e279016b3a18c3be1ee29b18ba12086c3b3 Mon Sep 17 00:00:00 2001 From: Thomas Amland Date: Fri, 7 Aug 2015 16:20:55 +0200 Subject: [PATCH] [codegenerator] return None on null pointer, not empty vector --- xbmc/interfaces/legacy/Player.cpp | 20 +++++++++---------- xbmc/interfaces/legacy/Player.h | 4 ++-- .../python/typemaps/python.vector.outtm | 8 ++++---- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/xbmc/interfaces/legacy/Player.cpp b/xbmc/interfaces/legacy/Player.cpp index b53b7d829b1c1..2ad9c825eb564 100644 --- a/xbmc/interfaces/legacy/Player.cpp +++ b/xbmc/interfaces/legacy/Player.cpp @@ -426,26 +426,26 @@ namespace XBMCAddon } } - std::vector* Player::getAvailableSubtitleStreams() + std::vector Player::getAvailableSubtitleStreams() { if (g_application.m_pPlayer->HasPlayer()) { int subtitleCount = g_application.m_pPlayer->GetSubtitleCount(); - std::vector* ret = new std::vector(subtitleCount); + std::vector ret(subtitleCount); for (int iStream=0; iStream < subtitleCount; iStream++) { SPlayerSubtitleStreamInfo info; g_application.m_pPlayer->GetSubtitleStreamInfo(iStream, info); if (info.language.length() > 0) - (*ret)[iStream] = info.language; + ret[iStream] = info.language; else - (*ret)[iStream] = info.name; + ret[iStream] = info.name; } return ret; } - return NULL; + return std::vector(); } void Player::setSubtitleStream(int iStream) @@ -461,26 +461,26 @@ namespace XBMCAddon } } - std::vector* Player::getAvailableAudioStreams() + std::vector Player::getAvailableAudioStreams() { if (g_application.m_pPlayer->HasPlayer()) { int streamCount = g_application.m_pPlayer->GetAudioStreamCount(); - std::vector* ret = new std::vector(streamCount); + std::vector ret(streamCount); for (int iStream=0; iStream < streamCount; iStream++) { SPlayerAudioStreamInfo info; g_application.m_pPlayer->GetAudioStreamInfo(iStream, info); if (info.language.length() > 0) - (*ret)[iStream] = info.language; + ret[iStream] = info.language; else - (*ret)[iStream] = info.name; + ret[iStream] = info.name; } return ret; } - return NULL; + return std::vector(); } void Player::setAudioStream(int iStream) diff --git a/xbmc/interfaces/legacy/Player.h b/xbmc/interfaces/legacy/Player.h index 551d7e395ccf6..42952202203fa 100644 --- a/xbmc/interfaces/legacy/Player.h +++ b/xbmc/interfaces/legacy/Player.h @@ -277,7 +277,7 @@ namespace XBMCAddon /** * getAvailableSubtitleStreams() -- get Subtitle stream names */ - std::vector* getAvailableSubtitleStreams(); + std::vector getAvailableSubtitleStreams(); // Player_setSubtitleStream /** @@ -317,7 +317,7 @@ namespace XBMCAddon /** * getAvailableAudioStreams() -- get Audio stream names */ - std::vector* getAvailableAudioStreams(); + std::vector getAvailableAudioStreams(); /** * setAudioStream(stream) -- set Audio Stream. diff --git a/xbmc/interfaces/python/typemaps/python.vector.outtm b/xbmc/interfaces/python/typemaps/python.vector.outtm index e6ff4525c7bbc..941204ea79816 100644 --- a/xbmc/interfaces/python/typemaps/python.vector.outtm +++ b/xbmc/interfaces/python/typemaps/python.vector.outtm @@ -23,15 +23,15 @@ boolean ispointer = swigTypeParser.SwigType_ispointer(type) String accessor = ispointer ? '->' : '.' seq = sequence.increment() -%> - ${result} = PyList_New(0); -<% + if (ispointer) { %> if (${api} != NULL) { <% } %> + ${result} = PyList_New(0); + for (std::vector<${swigTypeParser.SwigType_str(vectype)}>::iterator iter = ${api}${accessor}begin(); iter != ${api}${accessor}end(); ++iter) { ${swigTypeParser.SwigType_str(swigTypeParser.SwigType_ltype(vectype))}& entry${seq} = *iter; @@ -45,4 +45,4 @@ { %> } -<% } %> \ No newline at end of file +<% } %>