X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=hbytes%2Fhook.c;h=b2d4dc4e1abc657da57497315d8999b1795a2363;hp=a2198866b773bed905fbe68294a5c7bcefdef574;hb=ceed4cf646a34245b3bc88089a2187ebf7a41f0f;hpb=dea4e335a78d52ed5f4b71908aa8fcbf392e96be diff --git a/hbytes/hook.c b/hbytes/hook.c index a219886..b2d4dc4 100644 --- a/hbytes/hook.c +++ b/hbytes/hook.c @@ -67,12 +67,13 @@ static void hbytes_t_free(Tcl_Obj *o) { cht_hb_free(OBJ_HBYTES(o)); } -void obj_updatestr_array_prefix(Tcl_Obj *o, const Byte *byte, +void cht_obj_updatestr_array_prefix(Tcl_Obj *o, const Byte *byte, int l, const char *prefix) { char *str; int pl; pl= strlen(prefix); + assert(l < INT_MAX/2 - 1 - pl); o->length= l*2+pl; str= o->bytes= TALLOC(o->length+1); @@ -86,12 +87,12 @@ void obj_updatestr_array_prefix(Tcl_Obj *o, const Byte *byte, *str= 0; } -void obj_updatestr_array(Tcl_Obj *o, const Byte *byte, int l) { - obj_updatestr_array_prefix(o,byte,l,""); +void cht_obj_updatestr_array(Tcl_Obj *o, const Byte *byte, int l) { + cht_obj_updatestr_array_prefix(o,byte,l,""); } static void hbytes_t_ustr(Tcl_Obj *o) { - obj_updatestr_array(o, + cht_obj_updatestr_array(o, cht_hb_data(OBJ_HBYTES(o)), cht_hb_len(OBJ_HBYTES(o))); } @@ -316,18 +317,6 @@ int cht_do_hbytes_ushort2h(ClientData cd, Tcl_Interp *ip, /* toplevel functions */ -int cht_do_hbytestoplevel_hbytes(ClientData cd, Tcl_Interp *ip, - const HBytes_SubCommand *subcmd, - int objc, Tcl_Obj *const *objv) { - return subcmd->func(0,ip,objc,objv); -} - -int cht_do_hbytestoplevel_ulong(ClientData cd, Tcl_Interp *ip, - const ULong_SubCommand *subcmd, - int objc, Tcl_Obj *const *objv) { - return subcmd->func(0,ip,objc,objv); -} - CHT_INIT(hbytes, CHTI_TYPE(cht_hbytes_type) CHTI_TYPE(cht_ulong_type), CHTI_COMMANDS(cht_hbytestoplevel_entries))