aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-02-14 18:28:41 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2017-02-14 18:28:41 -0800
commitff3b3ecb55e95038ddf22b60650795862bc3e7ba (patch)
treebbcfd5a73a2b86b0ed84a903ed01c38113e48257 /toolsrc/src
parentda26d097165b5d06b77e7dcb13bf1b8a8c9c079e (diff)
downloadvcpkg-ff3b3ecb55e95038ddf22b60650795862bc3e7ba.tar.gz
vcpkg-ff3b3ecb55e95038ddf22b60650795862bc3e7ba.zip
Improve impl of get_environmental_variable()
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg_System.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/toolsrc/src/vcpkg_System.cpp b/toolsrc/src/vcpkg_System.cpp
index 3b056a675..e1a4c9d51 100644
--- a/toolsrc/src/vcpkg_System.cpp
+++ b/toolsrc/src/vcpkg_System.cpp
@@ -75,7 +75,6 @@ namespace vcpkg::System
optional<std::wstring> get_environmental_variable(const wchar_t* varname) noexcept
{
- std::wstring ret;
wchar_t* buffer;
_wdupenv_s(&buffer, nullptr, varname);
@@ -83,10 +82,8 @@ namespace vcpkg::System
{
return nullptr;
}
-
- ret = buffer;
- free(buffer);
- return std::make_unique<std::wstring>(ret);
+ std::unique_ptr<wchar_t, void(__cdecl *)(void*)> bufptr(buffer, free);
+ return std::make_unique<std::wstring>(buffer);
}
void set_environmental_variable(const wchar_t* varname, const wchar_t* varvalue) noexcept