[Python-checkins] r46473 - python/trunk/Modules/_sre.c
jack.diederich
python-checkins at python.org
Sat May 27 17:44:35 CEST 2006
Author: jack.diederich
Date: Sat May 27 17:44:34 2006
New Revision: 46473
Modified:
python/trunk/Modules/_sre.c
Log:
needforspeed: use PyObject_MALLOC instead of system malloc for small
allocations. Use PyMem_MALLOC for larger (1k+) chunks. 1%-2% speedup.
Modified: python/trunk/Modules/_sre.c
==============================================================================
--- python/trunk/Modules/_sre.c (original)
+++ python/trunk/Modules/_sre.c Sat May 27 17:44:34 2006
@@ -254,7 +254,7 @@
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 @@
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 @@
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 @@
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);
More information about the Python-checkins
mailing list