diff options
author | dgp <dgp@users.sourceforge.net> | 2011-05-31 20:36:31 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-05-31 20:36:31 (GMT) |
commit | 9d5b29a8051a1ca0b93a8fcdb7058920dad2a883 (patch) | |
tree | d04f46f284569671adefc78cfe80a141947431be /generic/tclInt.h | |
parent | ba5939ea3bf47fc00db9172391b3d68e24539921 (diff) | |
parent | cd7e1651b17ee97ef7188b3771fb7d8291a9449a (diff) | |
download | tcl-9d5b29a8051a1ca0b93a8fcdb7058920dad2a883.zip tcl-9d5b29a8051a1ca0b93a8fcdb7058920dad2a883.tar.gz tcl-9d5b29a8051a1ca0b93a8fcdb7058920dad2a883.tar.bz2 |
Fix bug 3293874
Diffstat (limited to 'generic/tclInt.h')
-rw-r--r-- | generic/tclInt.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h index 8f003be..cde46ac 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -2443,6 +2443,8 @@ typedef struct List { #define LIST_MAX \ (1 + (int)(((size_t)UINT_MAX - sizeof(List))/sizeof(Tcl_Obj *))) +#define LIST_SIZE(numElems) \ + (unsigned)(sizeof(List) + (((numElems) - 1) * sizeof(Tcl_Obj *))) /* * Macro used to get the elements of a list object. @@ -4097,8 +4099,22 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file, *---------------------------------------------------------------- */ +/* General tuning for minimum growth in Tcl growth algorithms */ +#ifndef TCL_MIN_GROWTH +# ifdef TCL_GROWTH_MIN_ALLOC + /* Support for any legacy tuners */ +# define TCL_MIN_GROWTH TCL_GROWTH_MIN_ALLOC +# else +# define TCL_MIN_GROWTH 1024 +# endif +#endif + +/* Token growth tuning, default to the general value. */ +#ifndef TCL_MIN_TOKEN_GROWTH +#define TCL_MIN_TOKEN_GROWTH TCL_MIN_GROWTH/sizeof(Tcl_Token) +#endif + #define TCL_MAX_TOKENS (int)(UINT_MAX / sizeof(Tcl_Token)) -#define TCL_MIN_TOKEN_GROWTH 50 #define TclGrowTokenArray(tokenPtr, used, available, append, staticPtr) \ do { \ int needed = (used) + (append); \ |