X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=hbytes%2Fparse.c;h=e5e3465c93c450eea9357c55e35718663ed58f03;hb=2cf1bfc63e73a424f9f3899c204025a8346b38e0;hp=1e1e5bb2ba616b13d3a27e08e8a9c74d1458c8c6;hpb=4ab162065d72217bcad27748442cbb27860c0cbd;p=chiark-tcl.git diff --git a/hbytes/parse.c b/hbytes/parse.c index 1e1e5bb..e5e3465 100644 --- a/hbytes/parse.c +++ b/hbytes/parse.c @@ -42,7 +42,7 @@ int pat_hbv(Tcl_Interp *ip, Tcl_Obj *var, HBytes_Var *agg) { rc= Tcl_ConvertToType(ip,val,&hbytes_type); if (rc) return rc; - agg->hb= &HBYTES(val); + agg->hb= OBJ_HBYTES(val); return TCL_OK; } @@ -62,12 +62,17 @@ void fini_hbv(Tcl_Interp *ip, int rc, HBytes_Var *agg) { int pat_hb(Tcl_Interp *ip, Tcl_Obj *obj, HBytes_Value *val) { int rc; rc= Tcl_ConvertToType(ip,obj,&hbytes_type); if (rc) return rc; - *val= HBYTES(obj); + *val= *OBJ_HBYTES(obj); return TCL_OK; } Tcl_Obj *ret_hb(Tcl_Interp *ip, HBytes_Value val) { - return hbytes_set_obj(0, val.start, HBYTES_LEN(val)); + Tcl_Obj *obj; + obj= Tcl_NewObj(); + Tcl_InvalidateStringRep(obj); + *OBJ_HBYTES(obj)= val; + obj->typePtr= &hbytes_type; + return obj; } Tcl_Obj *ret_obj(Tcl_Interp *ip, Tcl_Obj *val) {