publisher: Get the collector in line with the io.Writer interface
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 17 May 2021 17:39:40 +0000 (19:39 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 17 May 2021 17:39:40 +0000 (19:39 +0200)
As in: Do not retain the input slice.

publisher/htmlElementsCollector.go

index 1bc1a09bcd4b6606bf00593ab4c841fb0cd6fe4f..e1c743eab60a9b9e7111fa7108743ae1670381cd 100644 (file)
@@ -152,18 +152,21 @@ type htmlElementsCollectorWriter struct {
 }
 
 // Write collects HTML elements from p.
-func (w *htmlElementsCollectorWriter) Write(p []byte) (n int, err error) {
-       n = len(p)
+func (w *htmlElementsCollectorWriter) Write(p []byte) (int, error) {
        w.input = p
-       w.pos = 0
 
        for {
                w.r = w.next()
                if w.r == eof {
-                       return
+                       break
                }
                w.state = w.state(w)
        }
+
+       w.pos = 0
+       w.input = nil
+
+       return len(p), nil
 }
 
 func (l *htmlElementsCollectorWriter) backup() {