@@ -284,18 +284,9 @@ if (tcl_lock){\
284284    tcl_tstate = NULL; RELEASE_TCL_LOCK; }
285285
286286#define  ENTER_PYTHON  \
287-     { PyThreadState *tstate = tcl_tstate; tcl_tstate = NULL; \
288-         RELEASE_TCL_LOCK; PyEval_RestoreThread((tstate)); }
289- 
290- #define  LEAVE_PYTHON  \
291-     { PyThreadState *tstate = PyEval_SaveThread(); \
292-     ACQUIRE_TCL_LOCK;\
293-     tcl_tstate = tstate; }
294- 
295- #define  ENTER_PYTHON_OVERLAP  \
296287{ PyThreadState *tstate = tcl_tstate; tcl_tstate = NULL; PyEval_RestoreThread((tstate)); }
297288
298- #define  LEAVE_PYTHON_OVERLAP  \
289+ #define  LEAVE_PYTHON  \
299290{ PyThreadState *tstate = PyEval_SaveThread(); tcl_tstate = tstate; }
300291
301292
@@ -1449,17 +1440,17 @@ Tkapp_CallProc(Tkapp_CallEvent *e, int flags)
14491440    Tcl_Obj  * * objv ;
14501441    int  objc ;
14511442    int  i ;
1452-     ENTER_PYTHON_OVERLAP 
1443+     ENTER_PYTHON 
14531444    objv  =  Tkapp_CallArgs (e -> args , objStore , & objc );
14541445    if  (!objv ) {
14551446        PyErr_Fetch (e -> exc_type , e -> exc_value , e -> exc_tb );
14561447        * (e -> res ) =  NULL ;
14571448    }
1458-     LEAVE_PYTHON_OVERLAP 
1449+     LEAVE_PYTHON 
14591450    if  (!objv )
14601451        goto  done ;
14611452    i =  Tcl_EvalObjv (e -> self -> interp , objc , objv , e -> flags );
1462-     ENTER_PYTHON_OVERLAP 
1453+     ENTER_PYTHON 
14631454    if  (i  ==  TCL_ERROR ) {
14641455        * (e -> res ) =  NULL ;
14651456        * (e -> exc_type ) =  NULL ;
@@ -1471,7 +1462,7 @@ Tkapp_CallProc(Tkapp_CallEvent *e, int flags)
14711462    else  {
14721463        * (e -> res ) =  Tkapp_CallResult (e -> self );
14731464    }
1474-     LEAVE_PYTHON_OVERLAP 
1465+     LEAVE_PYTHON 
14751466
14761467    Tkapp_CallDeallocArgs (objv , objStore , objc );
14771468done :
@@ -2405,8 +2396,8 @@ PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[
24052396    ENTER_PYTHON 
24062397
24072398    /* TBD: no error checking here since we know, via the 
2408-       * Tkapp_CreateCommand() that the client data is a two-tuple 
2409-       */ 
2399+     * Tkapp_CreateCommand() that the client data is a two-tuple 
2400+     */ 
24102401    func  =  data -> func ;
24112402
24122403    /* Create argument list (argv1, ..., argvN) */ 
@@ -2427,14 +2418,11 @@ PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[
24272418    if  (res  ==  NULL )
24282419        return  PythonCmd_Error ();
24292420
2430-     ENTER_TCL 
2431-     ENTER_OVERLAP 
24322421    obj_res  =  AsObj (res );
24332422    if  (obj_res ) {
24342423        Tcl_SetObjResult (interp , obj_res );
24352424        rv  =  TCL_OK ;
24362425    }
2437-     LEAVE_OVERLAP_TCL 
24382426    if  (obj_res  ==  NULL ) {
24392427        Py_DECREF (res );
24402428        return  PythonCmd_Error ();
0 commit comments