From def91db3fe955168c82038ac2ee39783e81a2af0 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sat, 15 Dec 2018 15:17:13 +0100 Subject: prog, pkg/csource: more readable serialization for strings Always serialize strings in readable format (non-hex). Serialize binary data in readable format in more cases. Fixes #792 --- prog/encodingexec.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'prog/encodingexec.go') diff --git a/prog/encodingexec.go b/prog/encodingexec.go index 651ecef51..2d2f02e57 100644 --- a/prog/encodingexec.go +++ b/prog/encodingexec.go @@ -35,6 +35,8 @@ const ( execArgResult execArgData execArgCsum + + execArgDataReadable = uint64(1 << 63) ) const ( @@ -255,8 +257,15 @@ func (w *execContext) writeArg(arg Arg) { w.writeConstArg(a.Size(), w.target.PhysicalAddr(a), 0, 0, 0, FormatNative) case *DataArg: data := a.Data() + if len(data) == 0 { + return + } w.write(execArgData) - w.write(uint64(len(data))) + flags := uint64(len(data)) + if isReadableDataType(a.Type().(*BufferType)) { + flags |= execArgDataReadable + } + w.write(flags) padded := len(data) if pad := 8 - len(data)%8; pad != 8 { padded += pad -- cgit mrf-deployment