Posted to tcl by patthoyts at Tue Jun 10 22:45:10 GMT 2008view raw
- % proc t1 {} {variable data; binary encode hex $data}
- % proc t2 {} {variable data; binary encode hex -state data ""}
- % set data [binary format @102400] ; string length [t1]
- 204800
- % set data [binary format @102400] ; string length [t2]
- 204800
- % set data [binary format @102400] ; time {t1} 10
- 1755.9 microseconds per iteration
- % set data [binary format @102400] ; time {t2} 10
- 218.6 microseconds per iteration
- The C function accesses these Tcl_Obj's using:
- data = input = Tcl_GetByteArrayFromObj(objv[objc-1], &count);
- if (stateObj) {
- data = state = Tcl_GetByteArrayFromObj(stateObj, &state_count);
- count += state_count;
- }
- and then I move the 'data' pointer along the state data first then the input data. So the C code is identical for each calling method.