diff options
author | Alex Brainman <alex.brainman@gmail.com> | 2010-08-09 11:30:33 +1000 |
---|---|---|
committer | Alex Brainman <alex.brainman@gmail.com> | 2010-08-09 11:30:33 +1000 |
commit | a5f653f6b5d7a0696f3b5f85407088a259f766cf (patch) | |
tree | 310b96503d4a727fc802762c51ef57ab97a07f39 | |
parent | 175a8fd142bac6b53b4c3d43c9a942e1e86565b3 (diff) | |
download | go-a5f653f6b5d7a0696f3b5f85407088a259f766cf.tar.gz |
runtime: free memory returned by windows GetEnvironmentStrings
R=golang-dev
CC=golang-dev
http://codereview.appspot.com/1917048
Committer: Alex Brainman <alex.brainman@gmail.com>
-rw-r--r-- | src/pkg/runtime/windows/thread.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pkg/runtime/windows/thread.c b/src/pkg/runtime/windows/thread.c index f18d960a7..38e0c9ddb 100644 --- a/src/pkg/runtime/windows/thread.c +++ b/src/pkg/runtime/windows/thread.c @@ -85,7 +85,7 @@ windows_goargs(void) extern Slice os·Args; extern Slice os·Envs; - void *gcl, *clta, *ges; + void *gcl, *clta, *ges, *fes; uint16 *cmd, *env, **argv; String *gargv; String *genvv; @@ -95,6 +95,7 @@ windows_goargs(void) gcl = get_proc_addr("kernel32.dll", "GetCommandLineW"); clta = get_proc_addr("shell32.dll", "CommandLineToArgvW"); ges = get_proc_addr("kernel32.dll", "GetEnvironmentStringsW"); + fes = get_proc_addr("kernel32.dll", "FreeEnvironmentStringsW"); cmd = stdcall(gcl, 0); env = stdcall(ges, 0); @@ -121,6 +122,8 @@ windows_goargs(void) os·Envs.array = (byte*)genvv; os·Envs.len = envc; os·Envs.cap = envc; + + stdcall(fes, 1, env); } void |