Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Don't thrust availability of Tcl_GetUnicodeFromObj(): If it's not there, just don't use it. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | thread-2-8-branch |
Files: | files | file ages | folders |
SHA3-256: |
72ee9d48e51fc60b4830a687b8ea2425 |
User & Date: | jan.nijtmans 2019-05-17 12:19:08.843 |
Context
2019-05-17
| ||
12:27 | Doc improvements, backported from trunk. check-in: d3520adc0e user: jan.nijtmans tags: thread-2-8-branch | |
12:19 | Don't thrust availability of Tcl_GetUnicodeFromObj(): If it's not there, just don't use it. check-in: 72ee9d48e5 user: jan.nijtmans tags: thread-2-8-branch | |
2019-03-28
| ||
20:17 | Update version number to 2.8.5, as preparation for next release check-in: 737ee63e1a user: jan.nijtmans tags: thread-2-8-branch | |
Changes
Changes to generic/tclThreadInt.h.
︙ | ︙ | |||
180 181 182 183 184 185 186 | ((void (*)(Tcl_Obj *, Tcl_WideInt))((&(tclStubsPtr->tcl_PkgProvideEx))[489]))(objPtr, (int)(value)): \ ((void (*)(Tcl_Obj *, int))((&(tclStubsPtr->tcl_PkgProvideEx))[61]))(objPtr, value)) # undef Tcl_NewIntObj # define Tcl_NewIntObj(value) ((threadTclVersion>86)? \ ((Tcl_Obj * (*)(Tcl_WideInt))((&(tclStubsPtr->tcl_PkgProvideEx))[488]))((int)(value)): \ ((Tcl_Obj * (*)(int))((&(tclStubsPtr->tcl_PkgProvideEx))[52]))(value)) # undef Tcl_GetUnicodeFromObj | | | < | 180 181 182 183 184 185 186 187 188 189 190 191 | ((void (*)(Tcl_Obj *, Tcl_WideInt))((&(tclStubsPtr->tcl_PkgProvideEx))[489]))(objPtr, (int)(value)): \ ((void (*)(Tcl_Obj *, int))((&(tclStubsPtr->tcl_PkgProvideEx))[61]))(objPtr, value)) # undef Tcl_NewIntObj # define Tcl_NewIntObj(value) ((threadTclVersion>86)? \ ((Tcl_Obj * (*)(Tcl_WideInt))((&(tclStubsPtr->tcl_PkgProvideEx))[488]))((int)(value)): \ ((Tcl_Obj * (*)(int))((&(tclStubsPtr->tcl_PkgProvideEx))[52]))(value)) # undef Tcl_GetUnicodeFromObj # define Tcl_GetUnicodeFromObj ((((&(tclStubsPtr->tcl_PkgProvideEx))[378]) != ((&(tclStubsPtr->tcl_PkgProvideEx))[434])) ? \ ((void (*)(Tcl_Obj *, int *))((&(tclStubsPtr->tcl_PkgProvideEx))[434])) : ((void (*)(Tcl_Obj *, int *)) NULL)) #endif #endif /* _TCL_THREAD_INT_H_ */ |
Changes to generic/threadSvCmd.c.
︙ | ︙ | |||
39 40 41 42 43 44 45 | #define OBJS_TO_ALLOC_EACH_TIME 100 /* * Reference to Tcl object types used in object-copy code. * Those are referenced read-only, thus no mutex protection. */ | | | | | | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #define OBJS_TO_ALLOC_EACH_TIME 100 /* * Reference to Tcl object types used in object-copy code. * Those are referenced read-only, thus no mutex protection. */ static const Tcl_ObjType* booleanObjTypePtr = 0; static const Tcl_ObjType* byteArrayObjTypePtr = 0; static const Tcl_ObjType* doubleObjTypePtr = 0; static const Tcl_ObjType* intObjTypePtr = 0; static const Tcl_ObjType* wideIntObjTypePtr = 0; static const Tcl_ObjType* stringObjTypePtr = 0; /* * In order to be fully stub enabled, a small * hack is needed to query the tclEmptyStringRep * global symbol defined by Tcl. See Sv_Init. */ |
︙ | ︙ | |||
960 961 962 963 964 965 966 | * Sv_DuplicateObj -- * * Create and return a new object that is (mostly) a duplicate of the * argument object. We take care that the duplicate object is either * a proper object copy, i.e. w/o hidden references to original object * elements or a plain string object, i.e one w/o internal representation. * | | | 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 | * Sv_DuplicateObj -- * * Create and return a new object that is (mostly) a duplicate of the * argument object. We take care that the duplicate object is either * a proper object copy, i.e. w/o hidden references to original object * elements or a plain string object, i.e one w/o internal representation. * * Decision about whether to produce a real duplicate or a string object * is done as follows: * * 1) Scalar Tcl object types are properly copied by default; * these include: boolean, int double, string and byteArray types. * 2) Object registered with Sv_RegisterObjType are duplicated * using custom duplicator function which is guaranteed to * produce a proper deep copy of the object in question. |
︙ | ︙ | |||
2231 2232 2233 2234 2235 2236 2237 | * Get Tcl object types. These are used * in custom object duplicator function. */ obj = Tcl_NewStringObj("no", -1); Tcl_GetBooleanFromObj(NULL, obj, &i); booleanObjTypePtr = obj->typePtr; | > > > > > | | > | 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 | * Get Tcl object types. These are used * in custom object duplicator function. */ obj = Tcl_NewStringObj("no", -1); Tcl_GetBooleanFromObj(NULL, obj, &i); booleanObjTypePtr = obj->typePtr; #ifdef USE_TCL_STUBS if (Tcl_GetUnicodeFromObj) #endif { Tcl_GetUnicodeFromObj(obj, &i); stringObjTypePtr = obj->typePtr; } Tcl_GetByteArrayFromObj(obj, &i); byteArrayObjTypePtr = obj->typePtr; Tcl_DecrRefCount(obj); obj = Tcl_NewDoubleObj(0.0); doubleObjTypePtr = obj->typePtr; Tcl_DecrRefCount(obj); |
︙ | ︙ |