Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Folow-up to previous commit: ExecStack is a FLEXARRAY too |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-6-branch |
Files: | files | file ages | folders |
SHA3-256: |
f61ad2f6f3a9bb24d7f2eb271a853e15 |
User & Date: | jan.nijtmans 2020-09-11 13:43:49 |
Context
2020-09-14
| ||
09:22 | Prevent the usage of the term safe/unsafe child. Suggested by Keith Nash. Thanks! More usage of $ind... check-in: 4f1522879b user: jan.nijtmans tags: core-8-6-branch | |
2020-09-11
| ||
13:59 | Merge 8.6 check-in: 5d1e9a6253 user: jan.nijtmans tags: core-8-branch | |
13:43 | Folow-up to previous commit: ExecStack is a FLEXARRAY too check-in: f61ad2f6f3 user: jan.nijtmans tags: core-8-6-branch | |
12:31 | Fix 3bc0f44ef3: UBSan complains about body.ch... check-in: 29540d10c4 user: jan.nijtmans tags: core-8-6-branch | |
Changes
Changes to generic/tclExecute.c.
︙ | ︙ | |||
910 911 912 913 914 915 916 | TclCreateExecEnv( Tcl_Interp *interp, /* Interpreter for which the execution * environment is being created. */ int size) /* The initial stack size, in number of words * [sizeof(Tcl_Obj*)] */ { ExecEnv *eePtr = ckalloc(sizeof(ExecEnv)); | | | | 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 | TclCreateExecEnv( Tcl_Interp *interp, /* Interpreter for which the execution * environment is being created. */ int size) /* The initial stack size, in number of words * [sizeof(Tcl_Obj*)] */ { ExecEnv *eePtr = ckalloc(sizeof(ExecEnv)); ExecStack *esPtr = ckalloc(TclOffset(ExecStack, stackWords) + size * sizeof(Tcl_Obj *)); eePtr->execStackPtr = esPtr; TclNewBooleanObj(eePtr->constants[0], 0); Tcl_IncrRefCount(eePtr->constants[0]); TclNewBooleanObj(eePtr->constants[1], 1); Tcl_IncrRefCount(eePtr->constants[1]); eePtr->interp = interp; |
︙ | ︙ | |||
1176 1177 1178 1179 1180 1181 1182 | while (needed > newElems) { newElems *= 2; } #else newElems = needed; #endif | | | 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 | while (needed > newElems) { newElems *= 2; } #else newElems = needed; #endif newBytes = TclOffset(ExecStack, stackWords) + newElems * sizeof(Tcl_Obj *); oldPtr = esPtr; esPtr = ckalloc(newBytes); oldPtr->nextPtr = esPtr; esPtr->prevPtr = oldPtr; esPtr->nextPtr = NULL; |
︙ | ︙ |
Changes to generic/tclInt.h.
︙ | ︙ | |||
1405 1406 1407 1408 1409 1410 1411 | typedef struct ExecStack { struct ExecStack *prevPtr; struct ExecStack *nextPtr; Tcl_Obj **markerPtr; Tcl_Obj **endPtr; Tcl_Obj **tosPtr; | | | 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 | typedef struct ExecStack { struct ExecStack *prevPtr; struct ExecStack *nextPtr; Tcl_Obj **markerPtr; Tcl_Obj **endPtr; Tcl_Obj **tosPtr; Tcl_Obj *stackWords[TCLFLEXARRAY]; } ExecStack; /* * The data structure defining the execution environment for ByteCode's. * There is one ExecEnv structure per Tcl interpreter. It holds the evaluation * stack that holds command operands and results. The stack grows towards * increasing addresses. The member stackPtr points to the stackItems of the |
︙ | ︙ |