From 2d40077b4fa3230240530e4e97fcd0b17b350915 Mon Sep 17 00:00:00 2001 From: Jack Diederich Date: Sat, 27 May 2006 15:44:34 +0000 Subject: [PATCH] needforspeed: use PyObject_MALLOC instead of system malloc for small allocations. Use PyMem_MALLOC for larger (1k+) chunks. 1%-2% speedup. --- Modules/_sre.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/_sre.c b/Modules/_sre.c index 2bab474df81..499eae16dbc 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -254,7 +254,7 @@ static void data_stack_dealloc(SRE_STATE* state) { if (state->data_stack) { - free(state->data_stack); + PyMem_FREE(state->data_stack); state->data_stack = NULL; } state->data_stack_size = state->data_stack_base = 0; @@ -270,7 +270,7 @@ data_stack_grow(SRE_STATE* state, int size) void* stack; cursize = minsize+minsize/4+1024; TRACE(("allocate/grow stack %d\n", cursize)); - stack = realloc(state->data_stack, cursize); + stack = PyMem_REALLOC(state->data_stack, cursize); if (!stack) { data_stack_dealloc(state); return SRE_ERROR_MEMORY; @@ -1163,7 +1163,7 @@ entrance: ctx->pattern[1], ctx->pattern[2])); /* install new repeat context */ - ctx->u.rep = (SRE_REPEAT*) malloc(sizeof(*ctx->u.rep)); + ctx->u.rep = (SRE_REPEAT*) PyObject_MALLOC(sizeof(*ctx->u.rep)); ctx->u.rep->count = -1; ctx->u.rep->pattern = ctx->pattern; ctx->u.rep->prev = state->repeat; @@ -1173,7 +1173,7 @@ entrance: state->ptr = ctx->ptr; DO_JUMP(JUMP_REPEAT, jump_repeat, ctx->pattern+ctx->pattern[0]); state->repeat = ctx->u.rep->prev; - free(ctx->u.rep); + PyObject_FREE(ctx->u.rep); if (ret) { RETURN_ON_ERROR(ret);