Explorar o código

remove anonymous structs, relates #385

Stasik0 %!s(int64=9) %!d(string=hai) anos
pai
achega
5706d63fe1
Modificáronse 1 ficheiros con 17 adicións e 21 borrados
  1. 17 21
      src/server/ua_subscription_manager.c

+ 17 - 21
src/server/ua_subscription_manager.c

@@ -21,33 +21,29 @@ void SubscriptionManager_init(UA_Session *session) {
     // Counter
     // NOTE: On a 32 bit plattform, assigning 64 bit (2 regs) is allowed by the compiler, but shifting though multiple
     //       regs is usually not. To support both 32 and 64bit, the struct splits the 64Bit timestamp into two parts.
-    union {
+    typedef union {
         struct {
             UA_UInt32 ui32h;
             UA_UInt32 ui32l;
-        };
+        } individual;
         UA_UInt64 ui64;
-    } guidInitH;
+    } guidInit;
+    guidInit guidInitH;
     guidInitH.ui64 = (UA_UInt64) UA_DateTime_now();
-    manager->lastJobGuid.data1 = guidInitH.ui32h;
-    manager->lastJobGuid.data2 = (UA_UInt16) (guidInitH.ui32l >> 16);
-    manager->lastJobGuid.data3 = (UA_UInt16) (guidInitH.ui32l);
-    union {
-        struct {
-            UA_UInt32 ui32h;
-            UA_UInt32 ui32l;
-        };
-        UA_UInt64 ui64;
-    } guidInitL;
+    manager->lastJobGuid.data1 = guidInitH.individual.ui32h;
+    manager->lastJobGuid.data2 = (UA_UInt16) (guidInitH.individual.ui32l >> 16);
+    manager->lastJobGuid.data3 = (UA_UInt16) (guidInitH.individual.ui32l);
+
+    guidInit guidInitL;
     guidInitL.ui64 = (UA_UInt64) UA_DateTime_now();
-    manager->lastJobGuid.data4[0] = (UA_Byte) guidInitL.ui32l;
-    manager->lastJobGuid.data4[1] = (UA_Byte) (guidInitL.ui32l >> 8); 
-    manager->lastJobGuid.data4[2] = (UA_Byte) (guidInitL.ui32l >> 16);
-    manager->lastJobGuid.data4[3] = (UA_Byte) (guidInitL.ui32l >> 24);
-    manager->lastJobGuid.data4[4] = (UA_Byte) (manager->lastJobGuid.data4[0]) ^ (guidInitL.ui32h);
-    manager->lastJobGuid.data4[5] = (UA_Byte) (manager->lastJobGuid.data4[0]) ^ (guidInitL.ui32h >> 8);
-    manager->lastJobGuid.data4[6] = (UA_Byte) (manager->lastJobGuid.data4[1]) ^ (guidInitL.ui32h >> 16);
-    manager->lastJobGuid.data4[7] = (UA_Byte) (manager->lastJobGuid.data4[0]) ^ (guidInitL.ui32h >> 24);
+    manager->lastJobGuid.data4[0] = (UA_Byte) guidInitL.individual.ui32l;
+    manager->lastJobGuid.data4[1] = (UA_Byte) (guidInitL.individual.ui32l >> 8);
+    manager->lastJobGuid.data4[2] = (UA_Byte) (guidInitL.individual.ui32l >> 16);
+    manager->lastJobGuid.data4[3] = (UA_Byte) (guidInitL.individual.ui32l >> 24);
+    manager->lastJobGuid.data4[4] = (UA_Byte) (manager->lastJobGuid.data4[0]) ^ (guidInitL.individual.ui32h);
+    manager->lastJobGuid.data4[5] = (UA_Byte) (manager->lastJobGuid.data4[0]) ^ (guidInitL.individual.ui32h >> 8);
+    manager->lastJobGuid.data4[6] = (UA_Byte) (manager->lastJobGuid.data4[1]) ^ (guidInitL.individual.ui32h >> 16);
+    manager->lastJobGuid.data4[7] = (UA_Byte) (manager->lastJobGuid.data4[0]) ^ (guidInitL.individual.ui32h >> 24);
 }
 
 void SubscriptionManager_deleteMembers(UA_Session *session, UA_Server *server) {