Tcl Source Code

Check-in [56be4365e0]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fix the new assertion, it should not trigger when an expansion is in progress
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 56be4365e0300e770373a43be535e106b17ac860
User & Date: mig 2013-01-05 00:36:25
Context
2013-01-05
00:39
merge fork check-in: b18953345f user: jan.nijtmans tags: trunk
00:36
fix the new assertion, it should not trigger when an expansion is in progress check-in: 56be4365e0 user: mig tags: trunk
00:15
Add an assertion that checks the stack depth under TCL_COMPILE_DEBUG *before* stack cleanup. It curr... check-in: cc975c8c54 user: mig tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclExecute.c.

247
248
249
250
251
252
253
254
255
256
257


258
259

260
261
262
263
264
265
266
 * ARGUMENTS:
 *    pcAdjustment: how much to increment pc
 *    nCleanup: how many objects to remove from the stack
 *    resultHandling: 0 indicates no object should be pushed on the stack;
 *	otherwise, push objResultPtr. If (result < 0), objResultPtr already
 *	has the correct reference count.
 *
 * We use the new compile-time assertions to cheack that nCleanup is constant
 * and within range.
 */



#if TCL_COMPILE_DEBUG
#define CHECK_STACK() assert(CURR_DEPTH <= codePtr->maxStackDepth)

#else
#define CHECK_STACK()
#endif

#define NEXT_INST_F(pcAdjustment, nCleanup, resultHandling)	\
    do {							\
	TCL_CT_ASSERT((nCleanup >= 0) && (nCleanup <= 2));	\







|



>
>

|
>







247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
 * ARGUMENTS:
 *    pcAdjustment: how much to increment pc
 *    nCleanup: how many objects to remove from the stack
 *    resultHandling: 0 indicates no object should be pushed on the stack;
 *	otherwise, push objResultPtr. If (result < 0), objResultPtr already
 *	has the correct reference count.
 *
 * We use the new compile-time assertions to check that nCleanup is constant
 * and within range.
 */

/* Verify the stack depth, only when no expansion is in progress */

#if TCL_COMPILE_DEBUG
#define CHECK_STACK()							\
    assert((auxObjList != NULL) || (CURR_DEPTH <= codePtr->maxStackDepth))
#else
#define CHECK_STACK()
#endif

#define NEXT_INST_F(pcAdjustment, nCleanup, resultHandling)	\
    do {							\
	TCL_CT_ASSERT((nCleanup >= 0) && (nCleanup <= 2));	\