Browse Source

PubSub: Make UA_WriterGroup_deleteMembers static, pull out LIST_REMOVE

Julius Pfrommer 6 years ago
parent
commit
0e66249be0
2 changed files with 7 additions and 4 deletions
  1. 7 2
      src/pubsub/ua_pubsub.c
  2. 0 2
      src/pubsub/ua_pubsub.h

+ 7 - 2
src/pubsub/ua_pubsub.c

@@ -19,6 +19,10 @@
 #include "ua_pubsub_ns0.h"
 #endif
 
+/* Forward declaration */
+static void
+UA_WriterGroup_deleteMembers(UA_Server *server, UA_WriterGroup *writerGroup);
+
 /**********************************************/
 /*               Connection                   */
 /**********************************************/
@@ -157,7 +161,9 @@ UA_Server_removeWriterGroup(UA_Server *server, const UA_NodeId writerGroup){
 #ifdef UA_ENABLE_PUBSUB_INFORMATIONMODEL
     removeWriterGroupRepresentation(server, wg);
 #endif
+
     UA_WriterGroup_deleteMembers(server, wg);
+    LIST_REMOVE(wg, listEntry);
     UA_free(wg);
     return UA_STATUSCODE_GOOD;
 }
@@ -499,7 +505,7 @@ UA_WriterGroupConfig_deleteMembers(UA_WriterGroupConfig *writerGroupConfig){
     UA_free(writerGroupConfig->groupProperties);
 }
 
-void
+static void
 UA_WriterGroup_deleteMembers(UA_Server *server, UA_WriterGroup *writerGroup) {
     UA_WriterGroupConfig_deleteMembers(&writerGroup->config);
     //delete WriterGroup
@@ -508,7 +514,6 @@ UA_WriterGroup_deleteMembers(UA_Server *server, UA_WriterGroup *writerGroup) {
     LIST_FOREACH_SAFE(dataSetWriter, &writerGroup->writers, listEntry, tmpDataSetWriter){
         UA_Server_removeDataSetWriter(server, dataSetWriter->identifier);
     }
-    LIST_REMOVE(writerGroup, listEntry);
     UA_NodeId_deleteMembers(&writerGroup->linkedConnection);
     UA_NodeId_deleteMembers(&writerGroup->identifier);
 }

+ 0 - 2
src/pubsub/ua_pubsub.h

@@ -118,8 +118,6 @@ UA_StatusCode
 UA_WriterGroupConfig_copy(const UA_WriterGroupConfig *src, UA_WriterGroupConfig *dst);
 UA_WriterGroup *
 UA_WriterGroup_findWGbyId(UA_Server *server, UA_NodeId identifier);
-void
-UA_WriterGroup_deleteMembers(UA_Server *server, UA_WriterGroup *writerGroup);
 
 /**********************************************/
 /*               DataSetField                 */