diff --git a/util/bloom/Bloom.go b/util/bloom/Bloom.go index 705b8a8..ce76de0 100644 --- a/util/bloom/Bloom.go +++ b/util/bloom/Bloom.go @@ -20,9 +20,10 @@ var ( type ( Bloom struct { lang.BaseObject - m lang.UInt8Array - k uint - c uint + m lang.UInt8Array + k uint + c uint + hashCode int32 } ) @@ -128,7 +129,10 @@ func (b *Bloom) Equals(t lang.Object) bool { } func (b *Bloom) HashCode() int32 { - return int32(murmur3.Sum32(b.m.Bytes())) + if b.hashCode == 0 { + b.hashCode = int32(murmur3.Sum32(b.m.Bytes())) + } + return b.hashCode } func (b *Bloom) Merge(t *Bloom) bool {