Merge branch 'rb/hashmap-h-compilation-fix' into maint
authorJunio C Hamano <gitster@pobox.com>
Thu, 22 Mar 2018 21:24:15 +0000 (14:24 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 22 Mar 2018 21:24:15 +0000 (14:24 -0700)
Code clean-up.

* rb/hashmap-h-compilation-fix:
hashmap.h: remove unused variable

1  2 
hashmap.h
diff --combined hashmap.h
index 7ce79f3f72c144063b56f44368ad00c34e6aa786,c41ce392b7ce8339ece572ad46b842bd51b2a7d2..d375d9cce779952057e3c5dc6340edd12fb3f99d
+++ b/hashmap.h
   *
   * #define COMPARE_VALUE 1
   *
 - * static int long2string_cmp(const struct long2string *e1,
 + * static int long2string_cmp(const void *hashmap_cmp_fn_data,
 + *                            const struct long2string *e1,
   *                            const struct long2string *e2,
 - *                            const void *keydata, const void *userdata)
 + *                            const void *keydata)
   * {
 - *     char *string = keydata;
 - *     unsigned *flags = (unsigned*)userdata;
 + *     const char *string = keydata;
 + *     unsigned flags = *(unsigned *)hashmap_cmp_fn_data;
   *
   *     if (flags & COMPARE_VALUE)
 - *         return !(e1->key == e2->key) || (keydata ?
 - *                  strcmp(e1->value, keydata) : strcmp(e1->value, e2->value));
 + *         return e1->key != e2->key ||
 + *                  strcmp(e1->value, string ? string : e2->value);
   *     else
 - *         return !(e1->key == e2->key);
 + *         return e1->key != e2->key;
   * }
   *
   * int main(int argc, char **argv)
   * {
   *     long key;
 - *     char *value, *action;
 - *
 - *     unsigned flags = ALLOW_DUPLICATE_KEYS;
 + *     char value[255], action[32];
 + *     unsigned flags = 0;
   *
   *     hashmap_init(&map, (hashmap_cmp_fn) long2string_cmp, &flags, 0);
   *
 - *     while (scanf("%s %l %s", action, key, value)) {
 + *     while (scanf("%s %ld %s", action, &key, value)) {
   *
   *         if (!strcmp("add", action)) {
   *             struct long2string *e;
 - *             e = malloc(sizeof(struct long2string) + strlen(value));
 + *             FLEX_ALLOC_STR(e, value, value);
   *             hashmap_entry_init(e, memhash(&key, sizeof(long)));
   *             e->key = key;
 - *             memcpy(e->value, value, strlen(value));
   *             hashmap_add(&map, e);
   *         }
   *
   *         if (!strcmp("print_all_by_key", action)) {
 - *             flags &= ~COMPARE_VALUE;
 - *
 - *             struct long2string k;
 + *             struct long2string k, *e;
   *             hashmap_entry_init(&k, memhash(&key, sizeof(long)));
   *             k.key = key;
   *
 - *             struct long2string *e = hashmap_get(&map, &k, NULL);
 + *             flags &= ~COMPARE_VALUE;
 + *             e = hashmap_get(&map, &k, NULL);
   *             if (e) {
 - *                 printf("first: %l %s\n", e->key, e->value);
 - *                 while (e = hashmap_get_next(&map, e))
 - *                     printf("found more: %l %s\n", e->key, e->value);
 + *                 printf("first: %ld %s\n", e->key, e->value);
 + *                 while ((e = hashmap_get_next(&map, e)))
 + *                     printf("found more: %ld %s\n", e->key, e->value);
   *             }
   *         }
   *
   *         if (!strcmp("has_exact_match", action)) {
 - *             flags |= COMPARE_VALUE;
 - *
   *             struct long2string *e;
 - *             e = malloc(sizeof(struct long2string) + strlen(value));
 + *             FLEX_ALLOC_STR(e, value, value);
   *             hashmap_entry_init(e, memhash(&key, sizeof(long)));
   *             e->key = key;
 - *             memcpy(e->value, value, strlen(value));
   *
 - *             printf("%s found\n", hashmap_get(&map, e, NULL) ? "" : "not");
 + *             flags |= COMPARE_VALUE;
 + *             printf("%sfound\n", hashmap_get(&map, e, NULL) ? "" : "not ");
 + *             free(e);
   *         }
   *
   *         if (!strcmp("has_exact_match_no_heap_alloc", action)) {
 - *             flags |= COMPARE_VALUE;
 - *
 - *             struct long2string e;
 - *             hashmap_entry_init(e, memhash(&key, sizeof(long)));
 - *             e.key = key;
 + *             struct long2string k;
 + *             hashmap_entry_init(&k, memhash(&key, sizeof(long)));
 + *             k.key = key;
   *
 - *             printf("%s found\n", hashmap_get(&map, e, value) ? "" : "not");
 + *             flags |= COMPARE_VALUE;
 + *             printf("%sfound\n", hashmap_get(&map, &k, value) ? "" : "not ");
   *         }
   *
   *         if (!strcmp("end", action)) {
@@@ -90,8 -94,6 +90,8 @@@
   *             break;
   *         }
   *     }
 + *
 + *     return 0;
   * }
   */
  
@@@ -400,7 -402,6 +400,6 @@@ static inline void hashmap_disable_item
   */
  static inline void hashmap_enable_item_counting(struct hashmap *map)
  {
-       void *item;
        unsigned int n = 0;
        struct hashmap_iter iter;
  
                return;
  
        hashmap_iter_init(map, &iter);
-       while ((item = hashmap_iter_next(&iter)))
+       while (hashmap_iter_next(&iter))
                n++;
  
        map->do_count_items = 1;