In Tcl 8.6, visibility of stub pointers is
adapted to assure that extensions cannot
modify anything in the stubs table. This
patch provides the same feature for Itcl.
genStubs.tcl is modified to make itclStubs
"MODULE_SCOPE const"; itclIntStubs and
tclStubHooks "static const". The itclStubAPI
is no longer necessary.
Further on, the Itcl_InitStubs macro was
previously defined as:
#define Itcl_InitStubs(interp, version, exact) Itcl_InitStubs( \
interp, ITCL_PATCH_LEVEL, 1)
or, in other words, Itcl_InitStubs is a macro which maps
to a function with the same name. It makes "version"
and "exact" just dummy parameters, but I don't find
that anywhere in the documentation. Therefore, I
suspect that was not intended.
Here is the patch, fixing all that.
proposed fix