Prechádzať zdrojové kódy

Merge pull request #623 from otronarp/gcc44-centos6

Gcc44 centos6
Julius Pfrommer 9 rokov pred
rodič
commit
47022bddcb
2 zmenil súbory, kde vykonal 7 pridanie a 3 odobranie
  1. 3 0
      include/ua_config.h.in
  2. 4 3
      src/ua_types_encoding_binary.c

+ 3 - 0
include/ua_config.h.in

@@ -151,6 +151,9 @@ extern "C" {
 #elif defined(__FLOAT_WORD_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
     (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__) /* Defined only in GCC */
 # define UA_BINARY_OVERLAYABLE_FLOAT true
+#elif defined(__FLOAT_WORD_ORDER) && defined(__LITTLE_ENDIAN) && \
+    (__FLOAT_WORD_ORDER == __LITTLE_ENDIAN) /* Defined only in GCC */
+# define UA_BINARY_OVERLAYABLE_FLOAT true
 #endif
 
 /**

+ 4 - 3
src/ua_types_encoding_binary.c

@@ -817,9 +817,10 @@ Variant_encodeBinary(UA_Variant const *src, const UA_DataType *_, bufpos pos, bu
         if(hasDimensions)
             encodingByte |= UA_VARIANT_ENCODINGMASKTYPE_DIMENSIONS;
     }
-    if(isBuiltin)
-        encodingByte |= UA_VARIANT_ENCODINGMASKTYPE_TYPEID_MASK & (UA_Byte) (src->type->typeIndex + 1);
-    else
+    if(isBuiltin) {
+        UA_Byte t = (UA_Byte) (UA_VARIANT_ENCODINGMASKTYPE_TYPEID_MASK & (src->type->typeIndex + 1));
+	encodingByte |= t;
+    } else
         encodingByte |= UA_VARIANT_ENCODINGMASKTYPE_TYPEID_MASK & (UA_Byte) 22; /* ExtensionObject */
     UA_StatusCode retval = Byte_encodeBinary(&encodingByte, NULL, pos, end);