diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2013-04-12 11:27:37 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2013-04-12 11:27:37 (GMT) |
commit | 6b60065860ba862acb5d691ebae8e23fd8c99962 (patch) | |
tree | 2493f0dc8127e59b48881d4e4108ebb93a38ba22 /generic | |
parent | 5c4737c8d8ec15a5f5be39aea1d7815ed826fb7e (diff) | |
parent | 9b0ea3ca88021b82e77d81413e57d3d05d78a58a (diff) | |
download | tcl-6b60065860ba862acb5d691ebae8e23fd8c99962.zip tcl-6b60065860ba862acb5d691ebae8e23fd8c99962.tar.gz tcl-6b60065860ba862acb5d691ebae8e23fd8c99962.tar.bz2 |
Implement Tcl_Pkg* functions as macro's around Tcl_Pkg*Ex. This saves stack space, is (marginally) faster, while still being fully up/down compatible. It makes pkgb.so loadable in "novem" without the need to change the Tcl_PkgProvide() call to Tcl_PkgProvideEx().
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclDecls.h | 10 | ||||
-rw-r--r-- | generic/tclPkg.c | 4 |
2 files changed, 12 insertions, 2 deletions
diff --git a/generic/tclDecls.h b/generic/tclDecls.h index a1c0bf4..5fda514 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -3809,6 +3809,16 @@ extern const TclStubs *tclStubsPtr; #undef Tcl_SeekOld #undef Tcl_TellOld +#undef Tcl_PkgPresent +#define Tcl_PkgPresent(interp, name, version, exact) \ + Tcl_PkgPresentEx(interp, name, version, exact, NULL) +#undef Tcl_PkgProvide +#define Tcl_PkgProvide(interp, name, version) \ + Tcl_PkgProvideEx(interp, name, version, NULL) +#undef Tcl_PkgRequire +#define Tcl_PkgRequire(interp, name, version, exact) \ + Tcl_PkgRequireEx(interp, name, version, exact, NULL) + /* * Deprecated Tcl procedures: */ diff --git a/generic/tclPkg.c b/generic/tclPkg.c index 07f62a4..df90cea 100644 --- a/generic/tclPkg.c +++ b/generic/tclPkg.c @@ -949,7 +949,7 @@ Tcl_PackageObjCmd( version = TclGetString(objv[3]); } } - Tcl_PkgPresent(interp, name, version, exact); + Tcl_PkgPresentEx(interp, name, version, exact, NULL); return TCL_ERROR; break; } @@ -974,7 +974,7 @@ Tcl_PackageObjCmd( if (CheckVersionAndConvert(interp, argv3, NULL, NULL) != TCL_OK) { return TCL_ERROR; } - return Tcl_PkgProvide(interp, argv2, argv3); + return Tcl_PkgProvideEx(interp, argv2, argv3, NULL); case PKG_REQUIRE: require: if (objc < 3) { |