aboutsummaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/net/publicsuffix/list.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/net/publicsuffix/list.go')
-rw-r--r--vendor/golang.org/x/net/publicsuffix/list.go27
1 files changed, 24 insertions, 3 deletions
diff --git a/vendor/golang.org/x/net/publicsuffix/list.go b/vendor/golang.org/x/net/publicsuffix/list.go
index e2fddd6..d56e9e7 100644
--- a/vendor/golang.org/x/net/publicsuffix/list.go
+++ b/vendor/golang.org/x/net/publicsuffix/list.go
@@ -101,10 +101,10 @@ loop:
break
}
- u := nodes[f] >> (nodesBitsTextOffset + nodesBitsTextLength)
+ u := uint32(nodes.get(f) >> (nodesBitsTextOffset + nodesBitsTextLength))
icannNode = u&(1<<nodesBitsICANN-1) != 0
u >>= nodesBitsICANN
- u = children[u&(1<<nodesBitsChildren-1)]
+ u = children.get(u & (1<<nodesBitsChildren - 1))
lo = u & (1<<childrenBitsLo - 1)
u >>= childrenBitsLo
hi = u & (1<<childrenBitsHi - 1)
@@ -156,7 +156,7 @@ func find(label string, lo, hi uint32) uint32 {
// nodeLabel returns the label for the i'th node.
func nodeLabel(i uint32) string {
- x := nodes[i]
+ x := nodes.get(i)
length := x & (1<<nodesBitsTextLength - 1)
x >>= nodesBitsTextLength
offset := x & (1<<nodesBitsTextOffset - 1)
@@ -180,3 +180,24 @@ func EffectiveTLDPlusOne(domain string) (string, error) {
}
return domain[1+strings.LastIndex(domain[:i], "."):], nil
}
+
+type uint32String string
+
+func (u uint32String) get(i uint32) uint32 {
+ off := i * 4
+ return (uint32(u[off])<<24 |
+ uint32(u[off+1])<<16 |
+ uint32(u[off+2])<<8 |
+ uint32(u[off+3]))
+}
+
+type uint40String string
+
+func (u uint40String) get(i uint32) uint64 {
+ off := uint64(i * (nodesBits / 8))
+ return uint64(u[off])<<32 |
+ uint64(u[off+1])<<24 |
+ uint64(u[off+2])<<16 |
+ uint64(u[off+3])<<8 |
+ uint64(u[off+4])
+}