Forráskód Böngészése

memleak fix in client's networklayer, performance twaek in decoding by skipping inits, tnx @jpfr

Stasik0 9 éve
szülő
commit
ed6fc46d93
2 módosított fájl, 3 hozzáadás és 2 törlés
  1. 1 1
      examples/networklayer_tcp.c
  2. 2 1
      src/ua_types_encoding_binary.c

+ 1 - 1
examples/networklayer_tcp.c

@@ -514,7 +514,7 @@ UA_ServerNetworkLayer ServerNetworkLayerTCP_new(UA_ConnectionConfig conf, UA_UIn
 /***************************/
 
 static UA_StatusCode ClientNetworkLayerGetBuffer(UA_Connection *connection, UA_ByteString *buf, size_t minSize) {
-#ifdef UA_MULTITHREADING
+#ifndef UA_MULTITHREADING
     *buf = *(UA_ByteString*)connection->handle;
     return UA_STATUSCODE_GOOD;
 #else

+ 2 - 1
src/ua_types_encoding_binary.c

@@ -1175,7 +1175,8 @@ UA_StatusCode UA_encodeBinary(const void *src, const UA_DataType *dataType, UA_B
 
 UA_StatusCode UA_decodeBinary(const UA_ByteString *src, size_t *UA_RESTRICT offset, void *dst,
                               const UA_DataType *dataType) {
-    UA_init(dst, dataType);
+    /* skipping init seems to bring about 10% of performance and no valgrind warning*/
+    //UA_init(dst, dataType);
     uintptr_t ptr = (uintptr_t)dst;
     UA_StatusCode retval = UA_STATUSCODE_GOOD;
     UA_Byte membersSize = dataType->membersSize;