summaryrefslogtreecommitdiff
path: root/compat/json/compat.go
diff options
context:
space:
mode:
Diffstat (limited to 'compat/json/compat.go')
-rw-r--r--compat/json/compat.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/compat/json/compat.go b/compat/json/compat.go
index 300ab2f..1cdbf0b 100644
--- a/compat/json/compat.go
+++ b/compat/json/compat.go
@@ -157,18 +157,28 @@ func reencode(dst io.Writer, src []byte, cfg lowmemjson.ReEncoderConfig) error {
}
func Compact(dst *bytes.Buffer, src []byte) error {
- return reencode(dst, src, lowmemjson.ReEncoderConfig{
+ start := dst.Len()
+ err := reencode(dst, src, lowmemjson.ReEncoderConfig{
Compact: true,
BackslashEscape: lowmemjson.EscapePreserve,
})
+ if err != nil {
+ dst.Truncate(start)
+ }
+ return err
}
func Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error {
- return reencode(dst, src, lowmemjson.ReEncoderConfig{
+ start := dst.Len()
+ err := reencode(dst, src, lowmemjson.ReEncoderConfig{
Indent: indent,
Prefix: prefix,
BackslashEscape: lowmemjson.EscapePreserve,
})
+ if err != nil {
+ dst.Truncate(start)
+ }
+ return err
}
func Valid(data []byte) bool {