]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.cc] runtime: fix windows goenvs conversion mistake
authorAlex Brainman <alex.brainman@gmail.com>
Fri, 21 Nov 2014 01:15:18 +0000 (12:15 +1100)
committerAlex Brainman <alex.brainman@gmail.com>
Fri, 21 Nov 2014 01:15:18 +0000 (12:15 +1100)
uint16 occupies 2 bytes, not 1

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/178100043

src/runtime/os1_windows.go

index abd2297a3041545e9f386470490d96180657f27a..57ea050f2662c27b2dd0c4dde7aad7d07988da5a 100644 (file)
@@ -175,7 +175,7 @@ func goenvs() {
 
        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))
@@ -183,7 +183,7 @@ func goenvs() {
        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)))