diff options
author | Jack Diederich <jackdied@gmail.com> | 2006-05-27 15:44:34 (GMT) |
---|---|---|
committer | Jack Diederich <jackdied@gmail.com> | 2006-05-27 15:44:34 (GMT) |
commit | 2d40077b4fa3230240530e4e97fcd0b17b350915 (patch) | |
tree | 362a024b2171aa00f22ac804476d2907ab999a0d /Modules | |
parent | 2b38e40a5a9ae50e13456fd2c22cd56e3ee372f2 (diff) | |
download | cpython-2d40077b4fa3230240530e4e97fcd0b17b350915.zip cpython-2d40077b4fa3230240530e4e97fcd0b17b350915.tar.gz cpython-2d40077b4fa3230240530e4e97fcd0b17b350915.tar.bz2 |
needforspeed: use PyObject_MALLOC instead of system malloc for small
allocations. Use PyMem_MALLOC for larger (1k+) chunks. 1%-2% speedup.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_sre.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Modules/_sre.c b/Modules/_sre.c index 2bab474..499eae1 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); |