[Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/core stacklesseval.c, 1.160, 1.161
Christian Tismer
tismer at centera.de
Sun Jun 6 16:05:08 CEST 2004
Update of /home/cvs/slpdev/src/2.3/dev/Stackless/core
In directory centera.de:/tmp/cvs-serv28198/Stackless/core
Modified Files:
stacklesseval.c
Log Message:
removed cstack caching, no longer useful.
Index: stacklesseval.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/core/stacklesseval.c,v
retrieving revision 1.160
retrieving revision 1.161
diff -C2 -d -r1.160 -r1.161
*** a/stacklesseval.c 6 Jun 2004 13:58:14 -0000 1.160
--- b/stacklesseval.c 6 Jun 2004 14:05:05 -0000 1.161
***************
*** 43,65 ****
******************************************************/
- static PyCStackObject *cstack_cache[CSTACK_SLOTS] = { NULL };
- static int cstack_cachecount = 0;
-
- /* this function will get called by PyStacklessEval_Fini */
- static void slp_cstack_cacheclear(void)
- {
- int i;
- PyCStackObject *stack;
-
- for (i=0; i < CSTACK_SLOTS; i++) {
- while (cstack_cache[i] != NULL) {
- stack = cstack_cache[i];
- cstack_cache[i] = (PyCStackObject *) stack->startaddr;
- PyObject_Del(stack);
- }
- }
- cstack_cachecount = 0;
- }
-
static void
cstack_dealloc(PyCStackObject *cst)
--- 43,46 ----
***************
*** 68,81 ****
SLP_CHAIN_REMOVE(PyCStackObject, &slp_cstack_chain, cst, next,
prev);
! if (cst->ob_size >= CSTACK_SLOTS) {
! PyObject_Del(cst);
! }
! else {
! if (cstack_cachecount >= CSTACK_MAXCACHE)
! slp_cstack_cacheclear();
! cst->startaddr = (int *) cstack_cache[cst->ob_size];
! cstack_cache[cst->ob_size] = cst;
! ++cstack_cachecount;
! }
}
--- 49,53 ----
SLP_CHAIN_REMOVE(PyCStackObject, &slp_cstack_chain, cst, next,
prev);
! PyObject_Del(cst);
}
***************
*** 95,106 ****
Py_DECREF(*cst);
}
! if (size < CSTACK_SLOTS && ((*cst) = cstack_cache[size])) {
! /* take stack from cache */
! cstack_cache[size] = (PyCStackObject *) (*cst)->startaddr;
! --cstack_cachecount;
! _Py_NewReference((PyObject *)(*cst));
! }
! else
! *cst = PyObject_NewVar(PyCStackObject, &PyCStack_Type, size);
if (*cst == NULL) return NULL;
--- 67,71 ----
Py_DECREF(*cst);
}
! *cst = PyObject_NewVar(PyCStackObject, &PyCStack_Type, size);
if (*cst == NULL) return NULL;
***************
*** 333,337 ****
PyStacklessEval_Fini(void)
{
! slp_cstack_cacheclear();
}
--- 298,302 ----
PyStacklessEval_Fini(void)
{
! /* no caching at the moment */
}
_______________________________________________
Stackless-checkins mailing list
Stackless-checkins at stackless.com
http://www.stackless.com/mailman/listinfo/stackless-checkins
More information about the Stackless-checkins
mailing list