Bläddra i källkod

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.
Richard Stanway 3 år sedan
förälder
incheckning
02c6ce8b58
3 ändrade filer med 9 tillägg och 9 borttagningar
  1. 3 3
      plugins/obs-vst/VSTPlugin.cpp
  2. 2 2
      plugins/obs-vst/headers/VSTPlugin.h
  3. 4 4
      plugins/obs-vst/obs-vst.cpp

+ 3 - 3
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;

+ 2 - 2
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();

+ 4 - 4
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));
 	}
 }