$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r80110 - trunk/tools/build/v2/engine
From: jurko.gospodnetic_at_[hidden]
Date: 2012-08-21 09:28:33
Author: jurko
Date: 2012-08-21 09:28:32 EDT (Tue, 21 Aug 2012)
New Revision: 80110
URL: http://svn.boost.org/trac/boost/changeset/80110
Log:
Boost Jam cleanup - minor stylistic hashing code changes (merged internal hashhdr & item structures, brace positioning, shortened comparisons with 0, comment updates, trimmed trailing spaces, removed redundant 'register' keywords).
Text files modified: 
   trunk/tools/build/v2/engine/hash.c |    47 +++++++++++++++++++-------------------- 
   trunk/tools/build/v2/engine/hash.h |     2                                         
   2 files changed, 24 insertions(+), 25 deletions(-)
Modified: trunk/tools/build/v2/engine/hash.c
==============================================================================
--- trunk/tools/build/v2/engine/hash.c	(original)
+++ trunk/tools/build/v2/engine/hash.c	2012-08-21 09:28:32 EDT (Tue, 21 Aug 2012)
@@ -27,18 +27,14 @@
 #define HASH_DEBUG_PROFILE 1
 /* */
 
-/* Header attached to all data items entered into a hash table. */
+/* Header attached to all hash table data items. */
 
-struct hashhdr
+typedef struct item ITEM;
+struct item
 {
-    struct item * next;
+    ITEM * next;
 };
 
-typedef struct item
-{
-    struct hashhdr hdr;
-} ITEM;
-
 #define MAX_LISTS 32
 
 struct hash
@@ -46,7 +42,8 @@
     /*
      * the hash table, just an array of item pointers
      */
-    struct {
+    struct
+    {
         int nel;
         ITEM * * base;
     } tab;
@@ -58,7 +55,8 @@
      * the array of records, maintained by these routines - essentially a
      * microallocator
      */
-    struct {
+    struct
+    {
         int more;     /* how many more ITEMs fit in lists[ list ] */
         ITEM * free;  /* free list of items */
         char * next;  /* where to put more ITEMs in lists[ list ] */
@@ -66,7 +64,8 @@
         int nel;      /* total ITEMs held by all lists[] */
         int list;     /* index into lists[] */
 
-        struct {
+        struct
+        {
             int nel;      /* total ITEMs held by this list */
             char * base;  /* base of ITEMs array */
         } lists[ MAX_LISTS ];
@@ -86,7 +85,7 @@
 #define hash_bucket(hp, keyval) ((hp)->tab.base + ((keyval) % (hp)->tab.nel))
 
 #define hash_data_key(data) (*(OBJECT * *)(data))
-#define hash_item_data(item) ((HASHDATA *)((char *)item + sizeof(struct hashhdr)))
+#define hash_item_data(item) ((HASHDATA *)((char *)item + sizeof(ITEM)))
 #define hash_item_key(item) (hash_data_key(hash_item_data(item)))
 
 
@@ -102,10 +101,10 @@
 
     hp->bloat = 3;
     hp->tab.nel = 0;
-    hp->tab.base = (ITEM * *)0;
+    hp->tab.base = 0;
     hp->items.more = 0;
     hp->items.free = 0;
-    hp->items.size = sizeof( struct hashhdr ) + ALIGNED( datalen );
+    hp->items.size = sizeof( ITEM ) + ALIGNED( datalen );
     hp->items.list = -1;
     hp->items.nel = 0;
     hp->inel = 11;  /* 47 */
@@ -122,13 +121,13 @@
  * pointer, makes it point to the item prior to the found item in the same
  * bucket or to 0 if our item is the first item in its bucket.
  */
- 
+
 static ITEM * hash_search( struct hash * hp, unsigned int keyval,
     OBJECT * keydata, ITEM * * previous )
 {
     ITEM * i = *hash_bucket( hp, keyval );
     ITEM * p = 0;
-    for ( ; i; i = i->hdr.next )
+    for ( ; i; i = i->next )
     {
         if ( object_equal( hash_item_key( i ), keydata ) )
         {
@@ -171,8 +170,8 @@
         if ( hp->items.free )
         {
             i = hp->items.free;
-            hp->items.free = i->hdr.next;
-            assert( hash_item_key( i ) == 0 );
+            hp->items.free = i->next;
+            assert( !hash_item_key( i ) );
         }
         else
         {
@@ -180,7 +179,7 @@
             hp->items.next += hp->items.size;
         }
         --hp->items.more;
-        i->hdr.next = *base;
+        i->next = *base;
         *base = i;
         *found = 0;
     }
@@ -233,7 +232,7 @@
  * hashrehash() - resize and rebuild hp->tab, the hash table
  */
 
-static void hashrehash( register struct hash * hp )
+static void hashrehash( struct hash * hp )
 {
     int i = ++hp->items.list;
     hp->items.more = i ? 2 * hp->items.nel : hp->inel;
@@ -259,15 +258,15 @@
 
         for ( ; nel--; next += hp->items.size )
         {
-            register ITEM * i = (ITEM *)next;
+            ITEM * i = (ITEM *)next;
             ITEM * * ip = hp->tab.base + object_hash( hash_item_key( i ) ) %
                 hp->tab.nel;
             /* code currently assumes rehashing only when there are no free
              * items
              */
-            assert( hash_item_key( i ) != 0 );
+            assert( hash_item_key( i ) );
 
-            i->hdr.next = *ip;
+            i->next = *ip;
             *ip = i;
         }
     }
@@ -345,7 +344,7 @@
         {
             ITEM * item;
             int here = 0;
-            for ( item = tab[ i ]; item; item = item->hdr.next )
+            for ( item = tab[ i ]; item; item = item->next )
                 ++here;
 
             count += here;
Modified: trunk/tools/build/v2/engine/hash.h
==============================================================================
--- trunk/tools/build/v2/engine/hash.h	(original)
+++ trunk/tools/build/v2/engine/hash.h	2012-08-21 09:28:32 EDT (Tue, 21 Aug 2012)
@@ -72,7 +72,7 @@
 };
 
 void hashstats_init( struct hashstats * stats );
-void hashstats_add( struct hashstats * stats, struct hash * hp );
+void hashstats_add( struct hashstats * stats, struct hash * );
 void hashstats_print( struct hashstats * stats, char const * name );
 
 #endif