diff options
Diffstat (limited to 'nbt/compressed.go')
-rw-r--r-- | nbt/compressed.go | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/nbt/compressed.go b/nbt/compressed.go index a16308f..406c299 100644 --- a/nbt/compressed.go +++ b/nbt/compressed.go @@ -19,9 +19,16 @@ func ReadGzipdNamedTag(r io.Reader) (Tag, string, error) { } // WriteGzipdNamedTag writes a gzip compressed named tag. See WriteNamedTag for more info. -func WriteGzipdNamedTag(w io.Writer, name string, tag Tag) error { +func WriteGzipdNamedTag(w io.Writer, name string, tag Tag) (outerr error) { comp := gzip.NewWriter(w) - return WriteNamedTag(comp, name, tag) + defer func(){ + err := comp.Close() + if outerr != nil { + outerr = err + } + }() + outerr = WriteNamedTag(comp, name, tag) + return } // ReadZlibdNamedTag reads a zlib compressed named tag. See ReadNamedTags for more info. @@ -35,7 +42,13 @@ func ReadZlibdNamedTag(r io.Reader) (Tag, string, error) { } // WriteZlibdNamedTag writes a zlib compressed named tag. See WriteNamedTag for more info. -func WriteZlibdNamedTag(w io.Writer, name string, tag Tag) error { +func WriteZlibdNamedTag(w io.Writer, name string, tag Tag) (outerr error) { comp := zlib.NewWriter(w) + defer func(){ + err := comp.Close() + if outerr != nil { + outerr = err + } + }() return WriteNamedTag(comp, name, tag) } |