uint16 occupies 2 bytes, not 1
LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/
178100043
n := 0
for p = env; *p != 0; n++ {
- p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1)))
+ p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1)*unsafe.Sizeof(*p)))
}
envs = makeStringSlice(int(n))
p = env
for i := 0; i < n; i++ {
envs[i] = gostringw(p)
- p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1)))
+ p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1)*unsafe.Sizeof(*p)))
}
stdcall1(_FreeEnvironmentStringsW, uintptr(unsafe.Pointer(env)))