Skip to content

Commit 5ae01b6

Browse files
committed
Ensure LinkedList<> objects are not copied
1 parent 9ebc66f commit 5ae01b6

4 files changed

Lines changed: 13 additions & 7 deletions

File tree

src/AsyncEventSource.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ size_t AsyncEventSourceMessage::send(AsyncClient *client) {
157157
// Client
158158

159159
AsyncEventSourceClient::AsyncEventSourceClient(AsyncWebServerRequest *request, AsyncEventSource *server)
160-
: _messageQueue(LinkedList<AsyncEventSourceMessage *>([](AsyncEventSourceMessage *m){ delete m; }))
160+
: _messageQueue([](AsyncEventSourceMessage *m){ delete m; })
161161
{
162162
_client = request->client();
163163
_server = server;
@@ -256,7 +256,7 @@ void AsyncEventSourceClient::_runQueue(){
256256

257257
AsyncEventSource::AsyncEventSource(const String& url)
258258
: _url(url)
259-
, _clients(LinkedList<AsyncEventSourceClient *>([](AsyncEventSourceClient *c){ delete c; }))
259+
, _clients([](AsyncEventSourceClient *c){ delete c; })
260260
, _connectcb(NULL)
261261
{}
262262

src/AsyncWebSocket.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,8 @@ AsyncWebSocketMultiMessage* AsyncWebSocketMultiMessage::clone() const {
369369
constexpr size_t AWSC_PING_PAYLOAD_LEN = sizeof(AWSC_PING_PAYLOAD);
370370

371371
AsyncWebSocketClient::AsyncWebSocketClient(AsyncWebServerRequest *request, AsyncWebSocket *server)
372-
: _controlQueue(LinkedList<AsyncWebSocketControl *>([](AsyncWebSocketControl *c){ delete c; }))
373-
, _messageQueue(LinkedList<AsyncWebSocketMessage *>([](AsyncWebSocketMessage *m){ delete m; }))
372+
: _controlQueue([](AsyncWebSocketControl *c){ delete c; })
373+
, _messageQueue([](AsyncWebSocketMessage *m){ delete m; })
374374
, _tempObject(NULL)
375375
{
376376
_client = request->client();
@@ -844,7 +844,7 @@ uint16_t AsyncWebSocketClient::remotePort() {
844844

845845
AsyncWebSocket::AsyncWebSocket(const String& url)
846846
:_url(url)
847-
,_clients(LinkedList<AsyncWebSocketClient *>([](AsyncWebSocketClient *c){ delete c; }))
847+
,_clients([](AsyncWebSocketClient *c){ delete c; })
848848
,_cNextId(1)
849849
,_enabled(true)
850850
{
@@ -1203,7 +1203,7 @@ AsyncWebSocketMessageBuffer* AsyncWebSocket::makeBuffer(const uint8_t * data, si
12031203
return new AsyncWebSocketMessageBuffer(std::move(buffer));
12041204
}
12051205

1206-
AsyncWebSocket::AsyncWebSocketClientLinkedList AsyncWebSocket::getClients() const {
1206+
const AsyncWebSocket::AsyncWebSocketClientLinkedList& AsyncWebSocket::getClients() const {
12071207
return _clients;
12081208
}
12091209

src/AsyncWebSocket.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ class AsyncWebSocket: public AsyncWebHandler {
355355
AsyncWebSocketMessageBuffer* makeBuffer(const uint8_t * data, size_t size) __attribute__((deprecated));
356356
void _cleanBuffers() {};
357357

358-
AsyncWebSocketClientLinkedList getClients() const;
358+
const AsyncWebSocketClientLinkedList& getClients() const;
359359
};
360360

361361
//WebServer response to authenticate the socket and detach the tcp client from the web server request

src/StringArray.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ class LinkedList {
8080
LinkedList(OnRemove onRemove) : _root(nullptr), _last(nullptr), _onRemove(onRemove) {}
8181
~LinkedList() { free(); }
8282

83+
LinkedList(const LinkedList<T, Item>&) = delete;
84+
LinkedList(LinkedList<T, Item>&&) = delete;
85+
LinkedList& operator=(const LinkedList<T, Item>&) = delete;
86+
LinkedList& operator=(LinkedList<T, Item>&&) = delete;
87+
88+
8389
void add(T t){
8490
auto it = new ItemType(std::move(t));
8591
if(!_root){

0 commit comments

Comments
 (0)