diff --git a/sming/sming/commandprocessing/Command.cpp b/sming/sming/commandprocessing/Command.cpp index 3e7bc4e..3aa98de 100644 --- a/sming/sming/commandprocessing/Command.cpp +++ b/sming/sming/commandprocessing/Command.cpp @@ -36,7 +36,6 @@ const String Command::operator[](unsigned int index) Command::~Command() { delete cmdVector; delete cmdJsonBuffer; - delete &cmdRoot; } JsonObject& Command::getRoot() @@ -64,7 +63,6 @@ void Command::clear() cmdName = ""; delete cmdVector; delete cmdJsonBuffer; -// delete cmdRoot; cmdVector = NULL; cmdJsonBuffer = NULL; cmdRoot = NULL; diff --git a/sming/sming/commandprocessing/CommandOutput.cpp b/sming/sming/commandprocessing/CommandOutput.cpp index 76fa82e..c0fcfc4 100644 --- a/sming/sming/commandprocessing/CommandOutput.cpp +++ b/sming/sming/commandprocessing/CommandOutput.cpp @@ -64,7 +64,6 @@ void CommandOutput::flush() } } outputString = ""; - delete &cmdRoot; delete cmdJsonBuffer; cmdRoot = NULL; cmdJsonBuffer = NULL; diff --git a/sming/sming/core/DataSourceStream.h b/sming/sming/core/DataSourceStream.h index 3df78e9..a496438 100644 --- a/sming/sming/core/DataSourceStream.h +++ b/sming/sming/core/DataSourceStream.h @@ -67,6 +67,7 @@ class DelegateStream : public Print, public IDataSourceStream StreamDelegate streamDelegate = NULL; bool finished = false; + DelegateStream(const DelegateStream&) = delete; }; class FlashStream : public Print, public IDataSourceStream @@ -89,6 +90,8 @@ class FlashStream : public Print, public IDataSourceStream uint32 startAddress = 0; uint32 currentOffset = 0; uint32 streamSize = 0; + + FlashStream(const FlashStream&) = delete; }; class MemoryDataStream : public Print, public IDataSourceStream @@ -113,6 +116,8 @@ class MemoryDataStream : public Print, public IDataSourceStream char* pos; int size; int capacity; + + MemoryDataStream(const MemoryDataStream&) = delete; }; class FileStream : public IDataSourceStream @@ -140,6 +145,8 @@ class FileStream : public IDataSourceStream file_t handle; int pos; int size; + + FileStream(const FileStream&) = delete; }; enum TemplateExpandState @@ -172,6 +179,8 @@ class TemplateFileStream : public FileStream int skipBlockSize; int varDataPos; int varWaitSize; + + TemplateFileStream(const TemplateFileStream&) = delete; }; class JsonObjectStream : public MemoryDataStream @@ -190,6 +199,8 @@ class JsonObjectStream : public MemoryDataStream DynamicJsonBuffer buffer; JsonObject &rootNode; bool send; + + JsonObjectStream(const JsonObjectStream&) = delete; }; diff --git a/sming/sming/network/MqttClient.cpp b/sming/sming/network/MqttClient.cpp index f84a795..9851a97 100644 --- a/sming/sming/network/MqttClient.cpp +++ b/sming/sming/network/MqttClient.cpp @@ -92,12 +92,13 @@ bool MqttClient::publish(String topic, String message, bool retained /* = false* #define MQTT_COMMAND_MAXSIZE 512 // needs to be relocated -bool MqttClient::publish(String topic, MemoryDataStream reqDataStream, bool retained /* = false */) +bool MqttClient::publish(String topic, MemoryDataStream& reqDataStream, bool retained /* = false */) { char* msgBuffer = new char[MQTT_COMMAND_MAXSIZE+1]; int msgSize = reqDataStream.readMemoryBlock(msgBuffer, MQTT_COMMAND_MAXSIZE); msgBuffer[msgSize] = '\0'; int res = mqtt_publish(&broker, topic.c_str(), msgBuffer, retained); + delete [] msgBuffer; return res > 0; } diff --git a/sming/sming/network/MqttClient.h b/sming/sming/network/MqttClient.h index 61f167c..5e8a560 100644 --- a/sming/sming/network/MqttClient.h +++ b/sming/sming/network/MqttClient.h @@ -43,7 +43,7 @@ class MqttClient: protected TcpClient __forceinline TcpClientState getConnectionState() { return TcpClient::getConnectionState(); } bool publish(String topic, String message, bool retained = false); - bool publish(String topic, MemoryDataStream reqDataStream, bool retained = false); + bool publish(String topic, MemoryDataStream& reqDataStream, bool retained = false); bool publishWithQoS(String topic, String message, int QoS, bool retained = false);