Fix some tests.
[lightning.git] / gob.go
diff --git a/gob.go b/gob.go
index 893b8cadc6d25d4c0fb6d8cd9e8dc1a0ef95d6ce..70a5d2811a7e94bf9646863ff0283d271f8beb5b 100644 (file)
--- a/gob.go
+++ b/gob.go
@@ -18,6 +18,8 @@ import (
 type CompactGenome struct {
        Name     string
        Variants []tileVariantID
+       StartTag tagID
+       EndTag   tagID
 }
 
 type CompactSequence struct {
@@ -27,6 +29,7 @@ type CompactSequence struct {
 
 type TileVariant struct {
        Tag      tagID
+       Ref      bool
        Variant  tileVariantID
        Blake2b  [blake2b.Size256]byte
        Sequence []byte
@@ -56,17 +59,20 @@ func DecodeLibrary(rdr io.Reader, gz bool, cb func(*LibraryEntry) error) error {
                if err != nil {
                        return err
                }
+               defer zrdr.Close()
        }
        dec := gob.NewDecoder(zrdr)
-       for err == nil {
+       for {
                var ent LibraryEntry
                err = dec.Decode(&ent)
-               if err == nil {
-                       err = cb(&ent)
+               if err == io.EOF {
+                       return zrdr.Close()
+               } else if err != nil {
+                       return err
+               }
+               err = cb(&ent)
+               if err != nil {
+                       return err
                }
        }
-       if err != io.EOF {
-               return err
-       }
-       return zrdr.Close()
 }