[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