]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: convert more unsafe.Pointer arithmetic to add
authorJosh Bleecher Snyder <josharian@gmail.com>
Wed, 23 Aug 2017 14:48:04 +0000 (07:48 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Thu, 24 Aug 2017 13:55:34 +0000 (13:55 +0000)
Change-Id: Icfe24d5660666093f3e645f82d30b7687c8077be
Reviewed-on: https://go-review.googlesource.com/58370
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Martin Möhrmann <moehrmann@google.com>
src/runtime/hashmap_fast.go

index 27e5f50f87c2791a804e9463013ee814cac764cd..f43d005a5befdcb403d1b2bf79d53a0029c0b7cf 100644 (file)
@@ -658,7 +658,7 @@ func mapdelete_fast32(t *maptype, h *hmap, key uint32) {
                        }
                        // Only clear value if there are pointers in it.
                        if t.elem.kind&kindNoPointers == 0 {
-                               v := unsafe.Pointer(uintptr(unsafe.Pointer(b)) + dataOffset + bucketCnt*4 + i*uintptr(t.valuesize))
+                               v := add(unsafe.Pointer(b), dataOffset+bucketCnt*4+i*uintptr(t.valuesize))
                                memclrHasPointers(v, t.elem.size)
                        }
                        b.tophash[i] = empty
@@ -711,7 +711,7 @@ func mapdelete_fast64(t *maptype, h *hmap, key uint64) {
                        }
                        // Only clear value if there are pointers in it.
                        if t.elem.kind&kindNoPointers == 0 {
-                               v := unsafe.Pointer(uintptr(unsafe.Pointer(b)) + dataOffset + bucketCnt*8 + i*uintptr(t.valuesize))
+                               v := add(unsafe.Pointer(b), dataOffset+bucketCnt*8+i*uintptr(t.valuesize))
                                memclrHasPointers(v, t.elem.size)
                        }
                        b.tophash[i] = empty
@@ -767,7 +767,7 @@ func mapdelete_faststr(t *maptype, h *hmap, ky string) {
                        *(*string)(kptr) = ""
                        // Only clear value if there are pointers in it.
                        if t.elem.kind&kindNoPointers == 0 {
-                               v := unsafe.Pointer(uintptr(unsafe.Pointer(b)) + dataOffset + bucketCnt*2*sys.PtrSize + i*uintptr(t.valuesize))
+                               v := add(unsafe.Pointer(b), dataOffset+bucketCnt*2*sys.PtrSize+i*uintptr(t.valuesize))
                                memclrHasPointers(v, t.elem.size)
                        }
                        b.tophash[i] = empty