From 02c6ce8b583ecbe11cea3e815e441a0220872cd2 Mon Sep 17 00:00:00 2001 From: Richard Stanway Date: Wed, 27 Jul 2022 22:37:50 +0200 Subject: [PATCH] obs-vst: Improve some string handling - Use constant references where appropriate - Avoid unnecessary use of strcmp / strlen - Clear std::string with clear() Issues detected by PVS Studio. --- plugins/obs-vst/VSTPlugin.cpp | 6 +++--- plugins/obs-vst/headers/VSTPlugin.h | 4 ++-- plugins/obs-vst/obs-vst.cpp | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/obs-vst/VSTPlugin.cpp b/plugins/obs-vst/VSTPlugin.cpp index f64502eff..07eedba3d 100644 --- a/plugins/obs-vst/VSTPlugin.cpp +++ b/plugins/obs-vst/VSTPlugin.cpp @@ -135,7 +135,7 @@ void VSTPlugin::cleanupChannelBuffers() numChannels = 0; } -void VSTPlugin::loadEffectFromPath(std::string path) +void VSTPlugin::loadEffectFromPath(const std::string &path) { if (this->pluginPath.compare(path) != 0) { unloadEffect(); @@ -309,7 +309,7 @@ void VSTPlugin::unloadEffect() unloadLibrary(); - pluginPath = ""; + pluginPath.clear(); } bool VSTPlugin::isEditorOpen() @@ -403,7 +403,7 @@ std::string VSTPlugin::getChunk() } } -void VSTPlugin::setChunk(std::string data) +void VSTPlugin::setChunk(const std::string &data) { if (!effect) { return; diff --git a/plugins/obs-vst/headers/VSTPlugin.h b/plugins/obs-vst/headers/VSTPlugin.h index 3c64ba7ee..26bb64dda 100644 --- a/plugins/obs-vst/headers/VSTPlugin.h +++ b/plugins/obs-vst/headers/VSTPlugin.h @@ -88,11 +88,11 @@ class VSTPlugin : public QObject { public: VSTPlugin(obs_source_t *sourceContext); ~VSTPlugin(); - void loadEffectFromPath(std::string path); + void loadEffectFromPath(const std::string &path); void unloadEffect(); std::string getEffectPath(); std::string getChunk(); - void setChunk(std::string data); + void setChunk(const std::string &data); void setProgram(const int programNumber); int getProgram(); void getSourceNames(); diff --git a/plugins/obs-vst/obs-vst.cpp b/plugins/obs-vst/obs-vst.cpp index 6820b3d5d..40a1b9fc0 100644 --- a/plugins/obs-vst/obs-vst.cpp +++ b/plugins/obs-vst/obs-vst.cpp @@ -111,7 +111,7 @@ static void vst_update(void *data, obs_data_t *settings) const char *path = obs_data_get_string(settings, "plugin_path"); - if (strcmp(path, "") == 0) { + if (!*path) { vstPlugin->unloadEffect(); return; } @@ -121,10 +121,10 @@ static void vst_update(void *data, obs_data_t *settings) const char *chunkHash = obs_data_get_string(settings, "chunk_hash"); const char *chunkData = obs_data_get_string(settings, "chunk_data"); - bool chunkHashesMatch = chunkHash && strlen(chunkHash) > 0 && + bool chunkHashesMatch = chunkHash && *chunkHash && hash.compare(chunkHash) == 0; - if (chunkData && strlen(chunkData) > 0 && - (chunkHashesMatch || !chunkHash || strlen(chunkHash) == 0)) { + if (chunkData && *chunkData && + (chunkHashesMatch || !chunkHash || !*chunkHash)) { vstPlugin->setChunk(std::string(chunkData)); } }