@@ -261,11 +261,17 @@ _ccode $handle " _$arg = Tcl_New${convCmd}Obj($arg);" _ccode $handle " if (!_$arg) $return_failure;" } char* { - _ccode $handle " _$arg = Tcl_NewStringObj($arg, -1);" + if {[info exists $types(${arg}_MemberCount)] && [info exists $types(${arg}_MemberLength)]} { + _ccode $handle " _$arg = Tcl_NewByteArrayObj($arg, ${arg}_MemberCount * ${arg}_MemberLength);" + } elseif {[info exists $types(${arg}_Length)]} { + _ccode $handle " _$arg = Tcl_NewByteArrayObj($arg, ${arg}_Length);" + } else { + _ccode $handle " _$arg = Tcl_NewStringObj($arg, -1);" + } } Tcl_Obj* { _ccode $handle " _$arg = $arg;" } default {