]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Deduplicate iplist range descriptions, saves another 2.8MB heap
authorMatt Joiner <anacrolix@gmail.com>
Fri, 30 Jan 2015 14:53:42 +0000 (01:53 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 30 Jan 2015 14:53:42 +0000 (01:53 +1100)
client.go

index 513e7871d2231177ad8abccffb396b421ff22788..cb66b565966605771581bea0cb4cfbf5b017212d 100644 (file)
--- a/client.go
+++ b/client.go
@@ -345,6 +345,7 @@ func (cl *Client) setEnvBlocklist() (err error) {
        }
        defer f.Close()
        var ranges []iplist.Range
+       uniqStrs := make(map[string]string)
        scanner := bufio.NewScanner(f)
        for scanner.Scan() {
                r, ok, lineErr := iplist.ParseBlocklistP2PLine(scanner.Bytes())
@@ -355,6 +356,11 @@ func (cl *Client) setEnvBlocklist() (err error) {
                if !ok {
                        continue
                }
+               if s, ok := uniqStrs[r.Description]; ok {
+                       r.Description = s
+               } else {
+                       uniqStrs[r.Description] = r.Description
+               }
                ranges = append(ranges, r)
        }
        err = scanner.Err()