summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2006-10-27 12:44:08 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2006-10-27 12:44:08 (GMT)
commit73b2f1e5b9472dc390528dbc1ca45a09fc11c297 (patch)
tree6de7fcbabd476748cf31804f4d8a4bff785d818d
parent427a6151ed5780a42010a6e4b6346a660ba7b442 (diff)
downloadtcl-73b2f1e5b9472dc390528dbc1ca45a09fc11c297.zip
tcl-73b2f1e5b9472dc390528dbc1ca45a09fc11c297.tar.gz
tcl-73b2f1e5b9472dc390528dbc1ca45a09fc11c297.tar.bz2
Add field to CallFrame for holding object call frame data.
-rw-r--r--ChangeLog4
-rw-r--r--generic/tcl.h5
-rw-r--r--generic/tclInt.h13
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 <dkf@users.sf.net>
+ * 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