Fossil

Check-in [8c8c6bce]
Login

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

Overview
Comment:Don't set USE_TCL_EVALOBJV=1 for Tcl 8.6b3 and higher by default.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:8c8c6bce2187307c2535042a8ffa6781227afab1
User & Date: jan.nijtmans 2013-09-17 11:33:40
Context
2013-09-17
13:31
Update the build-in SQLite to the 3.8.1 alpha from upstream, for the purpose of testing SQLite. check-in: 02d3f533 user: drh tags: trunk
11:33
Don't set USE_TCL_EVALOBJV=1 for Tcl 8.6b3 and higher by default. check-in: 8c8c6bce user: jan.nijtmans tags: trunk
10:06
Minor cleanup of Tcl integration code. Also, add more comments describing USE_TCL_EVALOBJV. check-in: d7f83e74 user: mistachkin tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/th_tcl.c.

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

/*
** 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:
**
** 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
**    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),
** 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.
 */
#if (TCL_MAJOR_VERSION > 8) || \
    ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 6))

/*
** 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
/*







|
|

<
<
<
|



|


|

<
|
>







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.6b1 or b2?  This check is [mostly]
** wrong for at the following reason:
**



** 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.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 Tcl 8.6b1 or b2.
 */

#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
/*