diff options
Diffstat (limited to 'Python/pyarena.c')
| -rw-r--r-- | Python/pyarena.c | 15 | 
1 files changed, 3 insertions, 12 deletions
| diff --git a/Python/pyarena.c b/Python/pyarena.c index 5a255ae497..02a31d8ff0 100644 --- a/Python/pyarena.c +++ b/Python/pyarena.c @@ -12,8 +12,6 @@  #define DEFAULT_BLOCK_SIZE 8192  #define ALIGNMENT               8 -#define ALIGNMENT_MASK          (ALIGNMENT - 1) -#define ROUNDUP(x)              (((x) + ALIGNMENT_MASK) & ~ALIGNMENT_MASK)  typedef struct _block {      /* Total number of bytes owned by this block available to pass out. @@ -85,8 +83,8 @@ block_new(size_t size)      b->ab_size = size;      b->ab_mem = (void *)(b + 1);      b->ab_next = NULL; -    b->ab_offset = ROUNDUP((Py_uintptr_t)(b->ab_mem)) - -      (Py_uintptr_t)(b->ab_mem); +    b->ab_offset = (char *)_Py_ALIGN_UP(b->ab_mem, ALIGNMENT) - +            (char *)(b->ab_mem);      return b;  } @@ -104,7 +102,7 @@ block_alloc(block *b, size_t size)  {      void *p;      assert(b); -    size = ROUNDUP(size); +    size = _Py_SIZE_ROUND_UP(size, ALIGNMENT);      if (b->ab_offset + size > b->ab_size) {          /* If we need to allocate more memory than will fit in             the default block, allocate a one-off block that is @@ -158,7 +156,6 @@ PyArena_New()  void  PyArena_Free(PyArena *arena)  { -    int r;      assert(arena);  #if defined(Py_DEBUG)      /* @@ -175,12 +172,6 @@ PyArena_Free(PyArena *arena)      assert(arena->a_objects->ob_refcnt == 1);      */ -    /* Clear all the elements from the list.  This is necessary -       to guarantee that they will be DECREFed. */ -    r = PyList_SetSlice(arena->a_objects, -                        0, PyList_GET_SIZE(arena->a_objects), NULL); -    assert(r == 0); -    assert(PyList_GET_SIZE(arena->a_objects) == 0);      Py_DECREF(arena->a_objects);      free(arena);  } | 
