From 73b2f1e5b9472dc390528dbc1ca45a09fc11c297 Mon Sep 17 00:00:00 2001 From: dkf Date: Fri, 27 Oct 2006 12:44:08 +0000 Subject: Add field to CallFrame for holding object call frame data. --- ChangeLog | 4 ++++ generic/tcl.h | 5 +++-- generic/tclInt.h | 13 +++++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index f1b1dfa..bb8cfe3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2006-10-27 Donal K. Fellows + * generic/tclInt.h (CallFrame): Add a field for handling context data + for extensions (like object systems) that should be tied to a call + frame (and not a command or interpreter). + * generic/tclBasic.c (TclRenameCommand): Change to take CONST args; they were only ever used in a constant way anyway, so this appears to be a spot that was missed during TIP#27 work. diff --git a/generic/tcl.h b/generic/tcl.h index 8e309a2..c67cad7 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tcl.h,v 1.224 2006/10/23 22:49:24 msofer Exp $ + * RCS: @(#) $Id: tcl.h,v 1.225 2006/10/27 12:44:08 dkf Exp $ */ #ifndef _TCL @@ -952,7 +952,8 @@ typedef struct Tcl_CallFrame { char *dummy7; char *dummy8; int dummy9; - char* dummy10; + char *dummy10; + char *dummy11; } Tcl_CallFrame; /* diff --git a/generic/tclInt.h b/generic/tclInt.h index 6a06fb0..93a9514 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclInt.h,v 1.283 2006/10/23 22:49:25 msofer Exp $ + * RCS: @(#) $Id: tclInt.h,v 1.284 2006/10/27 12:44:08 dkf Exp $ */ #ifndef _TCLINT @@ -886,10 +886,19 @@ typedef struct CallFrame { * Initially NULL and created if needed. */ int numCompiledLocals; /* Count of local variables recognized by the * compiler including arguments. */ - Var* compiledLocals; /* Points to the array of local variables + Var *compiledLocals; /* Points to the array of local variables * recognized by the compiler. The compiler * emits code that refers to these variables * using an index into this array. */ + ClientData clientData; /* Pointer to some context that is used by + * object systems. The meaning of the contents + * of this field is defined by the code that + * sets it, and it should only ever be set by + * the code that is pushing the frame. In that + * case, the code that sets it should also + * have some means of discovering what the + * meaning of the value is, which we do not + * specify. */ } CallFrame; #define FRAME_IS_PROC 0x1 -- cgit v0.12