ref: 50cd7868cf055bce46e1a4253840089dfc602a11
parent: 7644a12dd8fbeb0c936848a4bc5cef423a8fc2b7
author: Runxi Yu <me@runxiyu.org>
date: Thu Jan 29 16:37:25 EST 2026
packed: Make packWriter implement Write directly instead of wrapping
--- a/packed_write_pack.go
+++ b/packed_write_pack.go
@@ -39,6 +39,16 @@
}, nil
}
+func (pw *packWriter) Write(p []byte) (int, error) {+ if pw == nil || !pw.wroteHeader {+ return 0, ErrInvalidObject
+ }
+ if err := pw.writePacked(p); err != nil {+ return 0, err
+ }
+ return len(p), nil
+}
+
func (pw *packWriter) writePacked(p []byte) error { if len(p) == 0 {return nil
@@ -94,7 +104,7 @@
return err
}
- zw := zlib.NewWriter(&packHashWriter{pw: pw})+ zw := zlib.NewWriter(pw)
if _, err := zw.Write(body); err != nil {_ = zw.Close()
return err
@@ -137,7 +147,7 @@
return err
}
- zw := zlib.NewWriter(&packHashWriter{pw: pw})+ zw := zlib.NewWriter(pw)
if _, err := zw.Write(delta); err != nil {_ = zw.Close()
return err
@@ -175,7 +185,7 @@
return err
}
- zw := zlib.NewWriter(&packHashWriter{pw: pw})+ zw := zlib.NewWriter(pw)
if _, err := zw.Write(delta); err != nil {_ = zw.Close()
return err
@@ -195,20 +205,6 @@
copy(out.data[:], sum)
out.algo = pw.algo
return out, nil
-}
-
-type packHashWriter struct {- pw *packWriter
-}
-
-func (w *packHashWriter) Write(p []byte) (int, error) {- if w == nil || w.pw == nil {- return 0, ErrInvalidObject
- }
- if err := w.pw.writePacked(p); err != nil {- return 0, err
- }
- return len(p), nil
}
// packHeaderEncode encodes a pack object header (type + size).
--
⑨