summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Brainman <alex.brainman@gmail.com>2010-08-09 11:30:33 +1000
committerAlex Brainman <alex.brainman@gmail.com>2010-08-09 11:30:33 +1000
commita5f653f6b5d7a0696f3b5f85407088a259f766cf (patch)
tree310b96503d4a727fc802762c51ef57ab97a07f39
parent175a8fd142bac6b53b4c3d43c9a942e1e86565b3 (diff)
downloadgo-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.c5
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