diff options
| author | Miguel Sofer <miguel.sofer@gmail.com> | 2008-08-16 13:59:56 (GMT) |
|---|---|---|
| committer | Miguel Sofer <miguel.sofer@gmail.com> | 2008-08-16 13:59:56 (GMT) |
| commit | 09ec86ec509b6c838e06a4c0f2ee3d8605176da2 (patch) | |
| tree | 469f0bc599aa05d42749405224b152c9f94d1289 | |
| parent | 17e45a852c8c1446cf82163a3f6365cdc2e74c63 (diff) | |
| download | tcl-09ec86ec509b6c838e06a4c0f2ee3d8605176da2.zip tcl-09ec86ec509b6c838e06a4c0f2ee3d8605176da2.tar.gz tcl-09ec86ec509b6c838e06a4c0f2ee3d8605176da2.tar.bz2 | |
* generic/tclExecute.c: better cmdFrame management
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | generic/tclExecute.c | 12 |
2 files changed, 9 insertions, 7 deletions
@@ -1,3 +1,7 @@ +2008-08-16 Miguel Sofer <msofer@users.sf.net> + + * generic/tclExecute.c: better cmdFrame management + 2008-08-14 Don Porter <dgp@users.sourceforge.net> * tests/fileName.test: Revise new tests for portability to case diff --git a/generic/tclExecute.c b/generic/tclExecute.c index d2c656e..950df0d 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclExecute.c,v 1.403 2008/08/09 22:20:57 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.404 2008/08/16 14:00:08 msofer Exp $ */ #include "tclInt.h" @@ -174,9 +174,8 @@ static BuiltinFunc tclBuiltinFuncTable[] = { typedef struct BottomData { struct BottomData *prevBottomPtr; - TEOV_callback *rootPtr; /* State when this bytecode execution began. */ - ByteCode *codePtr; /* These fields remain constant until it */ - CmdFrame *cmdFramePtr; /* returns. */ + TEOV_callback *rootPtr; /* State when this bytecode execution began: */ + ByteCode *codePtr; /* constant until it returns */ /* ------------------------------------------*/ TEOV_callback *atExitPtr; /* This field is used on return FROM here */ /* ------------------------------------------*/ @@ -190,7 +189,6 @@ typedef struct BottomData { bottomPtr->prevBottomPtr = oldBottomPtr; \ bottomPtr->rootPtr = TOP_CB(iPtr); \ bottomPtr->codePtr = codePtr; \ - bottomPtr->cmdFramePtr = iPtr->cmdFramePtr; \ bottomPtr->atExitPtr = NULL #define NR_DATA_BURY() \ @@ -207,8 +205,7 @@ typedef struct BottomData { cleanup = bottomPtr->cleanup; \ auxObjList = bottomPtr->auxObjList; \ esPtr = iPtr->execEnvPtr->execStackPtr; \ - tosPtr = esPtr->tosPtr; \ - iPtr->cmdFramePtr = bottomPtr->cmdFramePtr; + tosPtr = esPtr->tosPtr static Tcl_NRPostProc NRRestoreInterpState; @@ -7740,6 +7737,7 @@ TclExecuteByteCode( oldBottomPtr = bottomPtr->prevBottomPtr; atExitPtr = bottomPtr->atExitPtr; + iPtr->cmdFramePtr = bcFramePtr->nextPtr; TclStackFree(interp, bottomPtr); /* free my stack */ if (--codePtr->refCount <= 0) { |
