… | |
… | |
521 | { |
521 | { |
522 | //fprintf (stderr, "g_slice_free %ld %p\n", size, ptr);//D |
522 | //fprintf (stderr, "g_slice_free %ld %p\n", size, ptr);//D |
523 | unsigned long *p = (unsigned long *)ptr; |
523 | unsigned long *p = (unsigned long *)ptr; |
524 | unsigned long s = *--p ^ MAGIC; |
524 | unsigned long s = *--p ^ MAGIC; |
525 | |
525 | |
526 | if ((*p ^ MAGIC) != size) |
526 | if (size != (unsigned long)(*p ^ MAGIC)) |
527 | LOG (logBacktrace | llevError, "slice free size (%lx) doesn't match alloc size (%lx)\n", size, s); |
527 | LOG (logBacktrace | llevError, "slice free size (%lx) doesn't match alloc size (%lx)\n", size, s); |
528 | |
528 | |
529 | *p = MAGIC; |
529 | *p = MAGIC; |
530 | |
530 | |
531 | (g_slice_free1)(s + sizeof (unsigned long), p); |
531 | (g_slice_free1)(s + sizeof (unsigned long), p); |