]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Re-arrange structure to remove padding
authorAlan T. DeKok <aland@freeradius.org>
Wed, 23 Nov 2011 13:31:54 +0000 (14:31 +0100)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 23 Nov 2011 13:31:54 +0000 (14:31 +0100)
This saves 8 bytes per VP on a 64-bit machine.  That adds up...

src/include/libradius.h

index ca70e713ffed659c447e04337baf122637d94fdc..2a5033d4d409fc59eeec10bbb1aca599f30f2b2b 100644 (file)
@@ -166,10 +166,15 @@ typedef union value_pair_data {
 
 typedef struct value_pair {
        const char              *name;
+       struct value_pair       *next;
+
+       /*
+        *      Pack 4 32-bit fields together.  Saves ~8 bytes per struct
+        *      on 64-bit machines.
+        */
        unsigned int            attribute;
        unsigned int            vendor;
        int                     type;
-       size_t                  length; /* of data */
 #ifdef __cplusplus
        /*
         *      C++ hackery.  The server and modules are all C, so
@@ -180,8 +185,10 @@ typedef struct value_pair {
 #else
        FR_TOKEN                operator;
 #endif
+
         ATTR_FLAGS              flags;
-       struct value_pair       *next;
+
+       size_t                  length; /* of data field */
        VALUE_PAIR_DATA         data;
 } VALUE_PAIR;
 #define vp_strvalue   data.strvalue