Quellcode durchsuchen

add asserts. small beauty changes

Julius Pfrommer vor 10 Jahren
Ursprung
Commit
abcff06124
4 geänderte Dateien mit 16 neuen und 10 gelöschten Zeilen
  1. 3 3
      src/ua_types.c
  2. 4 4
      src/ua_types.h
  3. 6 3
      src/ua_types_encoding_binary.c
  4. 3 0
      src/util/ua_util.h

+ 3 - 3
src/ua_types.c

@@ -419,7 +419,7 @@ UA_TYPE_AS(UA_XmlElement, UA_ByteString)
 UA_Int32 UA_NodeId_init(UA_NodeId *p) {
 	if(p == UA_NULL) return UA_ERROR;
 	p->nodeIdType = UA_NODEIDTYPE_NUMERIC;
-	p->namespace    = 0;
+	p->namespace  = 0;
 	memset(&p->identifier, 0, sizeof(p->identifier));
 	return UA_SUCCESS;
 }
@@ -739,9 +739,9 @@ UA_Int32 UA_ExtensionObject_deleteMembers(UA_ExtensionObject *p) {
 
 UA_Int32 UA_ExtensionObject_init(UA_ExtensionObject *p) {
 	if(p == UA_NULL) return UA_ERROR;
-	UA_ByteString_init(&p->body);
-	p->encoding = 0;
 	UA_NodeId_init(&p->typeId);
+	p->encoding = UA_EXTENSIONOBJECT_ENCODINGMASK_NOBODYISENCODED;
+	UA_ByteString_init(&p->body);
 	return UA_SUCCESS;
 }
 

+ 4 - 4
src/ua_types.h

@@ -171,11 +171,11 @@ typedef struct UA_LocalizedText {
 typedef struct UA_ExtensionObject {
 	UA_NodeId typeId;
 	enum {
-		UA_EXTENSIONOBJECT_ENCODINGMASK_NOBODYISENCODED  = 0x00,
-		UA_EXTENSIONOBJECT_ENCODINGMASK_BODYISBYTESTRING = 0x01,
-		UA_EXTENSIONOBJECT_ENCODINGMASK_BODYISXML        = 0x02
+		UA_EXTENSIONOBJECT_ENCODINGMASK_NOBODYISENCODED  = 0,
+		UA_EXTENSIONOBJECT_ENCODINGMASK_BODYISBYTESTRING = 1,
+		UA_EXTENSIONOBJECT_ENCODINGMASK_BODYISXML        = 2
 	} encoding;
-	UA_ByteString body;         // contains either the bytestring or a pointer to the memory-object
+	UA_ByteString body; // contains either the bytestring or a pointer to the memory-object
 } UA_ExtensionObject;
 
 struct UA_VTable_Entry; // forwards declaration

+ 6 - 3
src/ua_types_encoding_binary.c

@@ -410,7 +410,7 @@ UA_Int32 UA_NodeId_calcSizeBinary(UA_NodeId const *p) {
 			break;
 
 		default:
-			break; // calcSize does not return errors. But the encoding function will.
+			UA_assert(UA_FALSE); // this must never happen
 		}
 	}
 	return length;
@@ -466,7 +466,7 @@ UA_TYPE_ENCODEBINARY(UA_NodeId,
 						 break;
 
 					 default:
-						 retval = UA_ERROR;
+						 UA_assert(UA_FALSE); // must never happen
 					 }
                      )
 
@@ -521,7 +521,7 @@ UA_Int32 UA_NodeId_decodeBinary(UA_ByteString const *src, UA_UInt32 *offset, UA_
 		break;
 
 	default:
-		retval = UA_ERROR;
+		retval = UA_ERROR; // the client sends an encodingByte we do not recognize
 	}
 	return retval;
 }
@@ -684,6 +684,9 @@ UA_TYPE_ENCODEBINARY(UA_ExtensionObject,
 					 case UA_EXTENSIONOBJECT_ENCODINGMASK_BODYISXML:
 						 retval |= UA_ByteString_encodeBinary(&src->body, dst, offset);
 						 break;
+
+					 default:
+						 UA_assert(UA_FALSE);
 					 }
                      )
 

+ 3 - 0
src/util/ua_util.h

@@ -4,6 +4,7 @@
 #include <stdio.h>  // printf
 #include <stdlib.h> // malloc, free
 #include <string.h> // memcpy
+#include <assert.h> // assert
 #include "ua_types.h"
 
 /* Debug macros */
@@ -35,4 +36,6 @@ UA_Int32 UA_VTable_isValidType(UA_Int32 type);
 #define UA_free(ptr) _UA_free(ptr, # ptr, __FILE__, __LINE__)
 #define UA_alloc(ptr, size) _UA_alloc(ptr, size, # ptr, # size, __FILE__, __LINE__)
 
+#define UA_assert(ignore) assert(ignore)
+
 #endif /* UA_UTILITY_H_ */