Exemple #1
0
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));
}
Exemple #2
0
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));
}
Exemple #3
0
void
tests_free (void *ptr, size_t size)
{
  struct header  **hp = tests_free_find (ptr);
  struct header  *h = *hp;

  if (h->size != size)
    {
      fprintf (stderr, "tests_free(): bad size %lu, should be %lu\n",
	       (unsigned long) size, (unsigned long) h->size);
      abort ();
    }

  tests_free_nosize (ptr);
}
Exemple #4
0
void
tests_free (void *ptr, size_t size)
{
    struct header  **hp = tests_free_find (ptr);
    struct header  *h = *hp;

    if (h->size != size)
    {
        /* Note: we should use the standard %zu to print sizes, but
           this is not supported by old C implementations. */
        printf ("tests_free(): bad size %lu, should be %lu\n",
                (unsigned long) size, (unsigned long) h->size);
        abort ();
    }

    tests_free_nosize (ptr);
}