void tests_free_nosize (void *ptr) { struct header **hp = tests_free_find (ptr); struct header *h = *hp; mp_limb_t PATTERN2_var; *hp = h->next; /* unlink */ if (*((mp_limb_t *) ((gmp_intptr_t) ptr - sizeof (mp_limb_t))) != PATTERN1 - PTRLIMB (ptr)) { fprintf (stderr, "in free: redzone clobbered before block\n"); abort (); } PATTERN2_var = PATTERN2 - PTRLIMB (ptr); if (memcmp ((void *) ((gmp_intptr_t) ptr + h->size), &PATTERN2_var, sizeof (mp_limb_t))) { fprintf (stderr, "in free: redzone clobbered after block\n"); abort (); } __gmp_default_free ((void *) ((gmp_intptr_t) ptr - sizeof(mp_limb_t)), h->size + 2 * sizeof (mp_limb_t)); __gmp_default_free (h, sizeof (*h)); }
static void tests_free_nosize (void *ptr) { struct header **hp = tests_free_find (ptr); struct header *h = *hp; *hp = h->next; /* unlink */ __gmp_default_free (ptr, h->size); __gmp_default_free (h, sizeof (*h)); }