27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
-
-
+
-
+
-
+
-
-
+
+
|
/*
** Has the decision about whether or not to use Tcl_EvalObjv already been made
** via the Makefile?
*/
#if !defined(USE_TCL_EVALOBJV)
/*
** Are we being compiled against Tcl 8.6 or higher? This check is [mostly]
** wrong for at least the following two reasons:
** Are we being compiled against Tcl 8.6b1 or b2? This check is [mostly]
** wrong for at the following reason:
**
** 1. This check assumes that all versions of Tcl 8.6 and higher suffer from
** the issue described in SF bug #3399564, which is incorrect.
**
** 2. Technically, this check is completely useless when the stubs mechanism
** 1. Technically, this check is completely useless when the stubs mechanism
** is in use. In that case, a runtime version check would be required and
** that has not been implemented.
**
** However, if a particular user compiles and runs against Tcl 8.6 (or later),
** However, if a particular user compiles and runs against Tcl 8.6b1 or b2,
** this will cause a fallback to using the "conservative" method of directly
** invoking a Tcl command. In that case, potential crashes will be avoided if
** the user just so happened to compile or run against a late beta of Tcl 8.6.
** the user just so happened to compile or run against Tcl 8.6b1 or b2.
*/
#if (TCL_MAJOR_VERSION > 8) || \
((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 6))
#if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION == 6) && \
(TCL_RELEASE_LEVEL == TCL_BETA_RELEASE) && (TCL_RELEASE_SERIAL < 3)
/*
** Workaround NRE-specific issue in Tcl_EvalObjCmd (SF bug #3399564) by using
** Tcl_EvalObjv instead of invoking the objProc directly.
*/
# define USE_TCL_EVALOBJV (1)
#else
/*
|