Attachment "DIFF" to
ticket [466823ffff]
added by
msofer
2001-10-01 20:29:51.
Index: ChangeLog
===================================================================
RCS file: /cvsroot/tcl/tcl/ChangeLog,v
retrieving revision 1.646
diff -u -r1.646 ChangeLog
--- ChangeLog 2001/09/29 11:09:34 1.646
+++ ChangeLog 2001/10/01 13:19:24
@@ -1,3 +1,11 @@
+2001-09-30 Miguel Sofer <[email protected]>
+
+ * generic/tclCmdIL.c:
+ * generic/tclCmdMZ.c:
+ * generic/tclParseExpr.c: removed unnecessary inclusion of
+ tclCompile.h and made a small modification in (InfoBodyCmd) to
+ improve the isolation of the compiler/engine subsystem.
+
2001-09-29 Vince Darley <[email protected]>
* generic/tclIOUtil.c:
Index: generic/tclCmdIL.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclCmdIL.c,v
retrieving revision 1.34
diff -u -r1.34 tclCmdIL.c
--- generic/tclCmdIL.c 2001/09/28 15:32:17 1.34
+++ generic/tclCmdIL.c 2001/10/01 13:19:25
@@ -19,7 +19,6 @@
#include "tclInt.h"
#include "tclPort.h"
-#include "tclCompile.h"
#include "tclRegexp.h"
/*
@@ -575,23 +574,17 @@
return TCL_ERROR;
}
- /*
- * We should not return a bytecompiled body. If it is precompiled,
- * then the bodyPtr's string representation is bogus, since sources
- * are not available. If it was just a bytecompiled body, then it
- * is likely to not be of any use to the caller, as it was compiled
- * for a separate procedure context [Bug: 3412], and noone else can
- * reasonably use it.
- * In order to make sure that later manipulations of the object do not
- * invalidate the internal representation, we make a copy of the string
- * representation and return that one, instead.
+ /*
+ * Here we used to return procPtr->bodyPtr, except when the body was
+ * bytecompiled - in that case, the return was a copy of the body's
+ * string rep. In order to better isolate the implementation details
+ * of the compiler/engine subsystem, we now always return a copy of
+ * the string rep. It is important to return a copy so that later
+ * manipulations of the object do not invalidate the internal rep.
*/
bodyPtr = procPtr->bodyPtr;
- resultPtr = bodyPtr;
- if (bodyPtr->typePtr == &tclByteCodeType) {
- resultPtr = Tcl_NewStringObj(bodyPtr->bytes, bodyPtr->length);
- }
+ resultPtr = Tcl_NewStringObj(bodyPtr->bytes, bodyPtr->length);
Tcl_SetObjResult(interp, resultPtr);
return TCL_OK;
Index: generic/tclCmdMZ.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclCmdMZ.c,v
retrieving revision 1.45
diff -u -r1.45 tclCmdMZ.c
--- generic/tclCmdMZ.c 2001/09/13 23:49:57 1.45
+++ generic/tclCmdMZ.c 2001/10/01 13:19:26
@@ -18,7 +18,6 @@
#include "tclInt.h"
#include "tclPort.h"
-#include "tclCompile.h"
#include "tclRegexp.h"
/*
Index: generic/tclParseExpr.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclParseExpr.c,v
retrieving revision 1.8
diff -u -r1.8 tclParseExpr.c
--- generic/tclParseExpr.c 2001/04/09 09:48:41 1.8
+++ generic/tclParseExpr.c 2001/10/01 13:19:27
@@ -16,7 +16,6 @@
*/
#include "tclInt.h"
-#include "tclCompile.h"
/*
* The stuff below is a bit of a hack so that this file can be used in