X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=base%2Fenum.c;h=4f2a8b7d1868d72cd6de4ce971bf6e28a2c5d4b2;hp=e3fa041b6d621875909bb06c84a0e23011555785;hb=3340221c68f8c948db9d2d3b553692fe642dd0f8;hpb=023813b37356b6af73127705623b8f7ae874f712 diff --git a/base/enum.c b/base/enum.c index e3fa041..4f2a8b7 100644 --- a/base/enum.c +++ b/base/enum.c @@ -4,7 +4,8 @@ #include -#include "hbytes.h" +#include "chiark-tcl.h" +#include "tables.h" static void enum_nt_dup(Tcl_Obj *src, Tcl_Obj *dup) { dup->internalRep= src->internalRep; @@ -19,12 +20,12 @@ static int enum_nt_sfa(Tcl_Interp *ip, Tcl_Obj *o) { abort(); } -Tcl_ObjType enum_nearlytype = { +Tcl_ObjType cht_enum_nearlytype = { "enum-nearly", 0, enum_nt_dup, enum_nt_ustr, enum_nt_sfa }; -Tcl_ObjType enum1_nearlytype = { +Tcl_ObjType cht_enum1_nearlytype = { "enum1-nearly", 0, enum_nt_dup, enum_nt_ustr, enum_nt_sfa }; @@ -58,13 +59,13 @@ static void appres_enum(Tcl_Interp *ip, const void *p) { Tcl_AppendResult(ip, enum_str(p), (char*)0); } -const void *enum_lookup_cached_func(Tcl_Interp *ip, Tcl_Obj *o, +const void *cht_enum_lookup_cached_func(Tcl_Interp *ip, Tcl_Obj *o, const void *firstentry, size_t entrysize, const char *what) { const char *supplied, *found; const char *ep; - if (o->typePtr == &enum_nearlytype && + if (o->typePtr == &cht_enum_nearlytype && o->internalRep.twoPtrValue.ptr1 == firstentry) return o->internalRep.twoPtrValue.ptr2; @@ -74,8 +75,8 @@ const void *enum_lookup_cached_func(Tcl_Interp *ip, Tcl_Obj *o, ep += entrysize); if (found) { - objfreeir(o); - o->typePtr= &enum_nearlytype; + cht_objfreeir(o); + o->typePtr= &cht_enum_nearlytype; o->internalRep.twoPtrValue.ptr1= (void*)firstentry; o->internalRep.twoPtrValue.ptr2= (void*)ep; return ep; @@ -93,11 +94,11 @@ static void appres_enum1(Tcl_Interp *ip, const void *p) { Tcl_AppendResult(ip, buf, (char*)0); } -int enum1_lookup_cached_func(Tcl_Interp *ip, Tcl_Obj *o, +int cht_enum1_lookup_cached_func(Tcl_Interp *ip, Tcl_Obj *o, const char *opts, const char *what) { const char *supplied, *fp; - if (o->typePtr != &enum1_nearlytype || + if (o->typePtr != &cht_enum1_nearlytype || o->internalRep.twoPtrValue.ptr1 != opts) { supplied= Tcl_GetStringFromObj(o,0); assert(supplied); @@ -108,8 +109,8 @@ int enum1_lookup_cached_func(Tcl_Interp *ip, Tcl_Obj *o, return -1; } - objfreeir(o); - o->typePtr= &enum1_nearlytype; + cht_objfreeir(o); + o->typePtr= &cht_enum1_nearlytype; o->internalRep.twoPtrValue.ptr1= (void*)opts; o->internalRep.twoPtrValue.ptr2= (void*)fp; }