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.
This commit is contained in:
Richard Stanway 2022-07-27 22:37:50 +02:00 committed by Matt Gajownik
parent fe9c3748ce
commit 02c6ce8b58
3 changed files with 9 additions and 9 deletions

View file

@ -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;

View file

@ -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();

View file

@ -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));
}
}