Changeset 2050 for trunk/src/kmk/misc.c


Ignore:
Timestamp:
Nov 3, 2008, 3:53:07 PM (17 years ago)
Author:
bird
Message:

kmk: converted the inlined alloccache_free() to non-inlined to avoid aliasing problems in read.c with gcc 3.2.3 (rhel3) and 3.4.3 (solaris/x86).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/misc.c

    r2035 r2050  
    11641164#ifdef CONFIG_WITH_ALLOC_CACHES
    11651165
     1166/* Free am item.
     1167   This was not inlined because of aliasing issues arrising with GCC. */
     1168void
     1169alloccache_free (struct alloccache *cache, void *item)
     1170{
     1171  struct alloccache_free_ent *f = (struct alloccache_free_ent *)item;
     1172#if 0 /*ndef NDEBUG*/
     1173  struct alloccache_free_ent *c;
     1174  unsigned int i = 0;
     1175  for (c = cache->free_head; c != NULL; c = c->next, i++)
     1176    MY_ASSERT_MSG (c != f && i < 0x10000000,
     1177                   ("i=%u total_count=%u\n", i, cache->total_count));
     1178#endif
     1179
     1180  f->next = cache->free_head;
     1181  cache->free_head = f;
     1182  MAKE_STATS(cache->free_count++;);
     1183}
     1184
    11661185/* Default allocator. */
    11671186static void *
Note: See TracChangeset for help on using the changeset viewer.