Update of /cvsroot/python/python/dist/src/Python In directory usw-pr-cvs1:/tmp/cvs-serv14160/Python Modified Files: Tag: release22-maint ceval.c pystate.c Log Message: This is Armin Rigo's patch: [ 617309 ] getframe hook (Psyco #1) Forward port candidate. Index: ceval.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/ceval.c,v retrieving revision 2.301.4.7 retrieving revision 2.301.4.8 diff -C2 -d -r2.301.4.7 -r2.301.4.8 *** ceval.c 7 Oct 2002 09:40:20 -0000 2.301.4.7 --- ceval.c 7 Oct 2002 09:47:20 -0000 2.301.4.8 *************** *** 2950,2957 **** PyEval_GetBuiltins(void) { ! PyThreadState *tstate = PyThreadState_Get(); ! PyFrameObject *current_frame = tstate->frame; if (current_frame == NULL) ! return tstate->interp->builtins; else return current_frame->f_builtins; --- 2950,2956 ---- PyEval_GetBuiltins(void) { ! PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame(); if (current_frame == NULL) ! return PyThreadState_Get()->interp->builtins; else return current_frame->f_builtins; *************** *** 2961,2965 **** PyEval_GetLocals(void) { ! PyFrameObject *current_frame = PyThreadState_Get()->frame; if (current_frame == NULL) return NULL; --- 2960,2964 ---- PyEval_GetLocals(void) { ! PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame(); if (current_frame == NULL) return NULL; *************** *** 2971,2975 **** PyEval_GetGlobals(void) { ! PyFrameObject *current_frame = PyThreadState_Get()->frame; if (current_frame == NULL) return NULL; --- 2970,2974 ---- PyEval_GetGlobals(void) { ! PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame(); if (current_frame == NULL) return NULL; *************** *** 2981,2986 **** PyEval_GetFrame(void) { ! PyFrameObject *current_frame = PyThreadState_Get()->frame; ! return (PyObject *)current_frame; } --- 2980,2985 ---- PyEval_GetFrame(void) { ! PyThreadState *tstate = PyThreadState_Get(); ! return _PyThreadState_GetFrame((PyObject *)tstate); } *************** *** 2988,2992 **** PyEval_GetRestricted(void) { ! PyFrameObject *current_frame = PyThreadState_Get()->frame; return current_frame == NULL ? 0 : current_frame->f_restricted; } --- 2987,2991 ---- PyEval_GetRestricted(void) { ! PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame(); return current_frame == NULL ? 0 : current_frame->f_restricted; } *************** *** 2995,2999 **** PyEval_MergeCompilerFlags(PyCompilerFlags *cf) { ! PyFrameObject *current_frame = PyThreadState_Get()->frame; int result = 0; --- 2994,2998 ---- PyEval_MergeCompilerFlags(PyCompilerFlags *cf) { ! PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame(); int result = 0; Index: pystate.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/pystate.c,v retrieving revision 2.20 retrieving revision 2.20.16.1 diff -C2 -d -r2.20 -r2.20.16.1 *** pystate.c 19 Jul 2001 12:19:27 -0000 2.20 --- pystate.c 7 Oct 2002 09:47:21 -0000 2.20.16.1 *************** *** 36,39 **** --- 36,40 ---- PyThreadState *_PyThreadState_Current = NULL; + unaryfunc _PyThreadState_GetFrame = NULL; *************** *** 115,122 **** --- 116,132 ---- + /* Default implementation for _PyThreadState_GetFrame */ + static struct _frame * + threadstate_getframe(PyThreadState *self) + { + return self->frame; + } + PyThreadState * PyThreadState_New(PyInterpreterState *interp) { PyThreadState *tstate = PyMem_NEW(PyThreadState, 1); + if (_PyThreadState_GetFrame == NULL) + _PyThreadState_GetFrame = (unaryfunc)threadstate_getframe; if (tstate != NULL) {
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4