Cleanse usage of some unsafe functions on win32

This commit is contained in:
Brian Anderson 2011-10-12 16:42:13 -07:00
parent e8a0e592da
commit 6e67c4b253

View file

@ -38,14 +38,18 @@ fn getenv(n: str) -> option::t<str> {
let res =
str::as_buf(n,
{|nbuf|
unsafe {
let vbuf = vec::to_ptr(v);
os::kernel32::GetEnvironmentVariableA(nbuf, vbuf,
nsize)
}
});
if res == 0u {
ret option::none;
} else if res < nsize {
vec::unsafe::set_len(v, res);
unsafe {
vec::unsafe::set_len(v, res);
}
ret option::some(str::unsafe_from_bytes(v));
} else { nsize = res; }
}