sal/osl/w32/process.cxx | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-)
New commits: commit 3dbc42e56e5a84c2b1689063b6ff3530916f7e6a Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Fri Jan 29 12:28:57 2021 +0300 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Fri Jan 29 21:46:21 2021 +0100 Use OUString and its fast concat instead of C string manipulation Change-Id: I5c0071460855317024ab6f61e6b3010d12546227 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110128 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/sal/osl/w32/process.cxx b/sal/osl/w32/process.cxx index c5885c96282f..205d6415e035 100644 --- a/sal/osl/w32/process.cxx +++ b/sal/osl/w32/process.cxx @@ -23,7 +23,6 @@ #include <shellapi.h> #include <cassert> -#include <memory> #include <osl/mutex.hxx> #include <osl/nlsupport.h> @@ -35,6 +34,7 @@ #include "file_url.hxx" #include "path_helper.hxx" #include <rtl/alloc.h> +#include <rtl/ustring.hxx> #include <sal/log.hxx> oslProcessError SAL_CALL osl_terminateProcess(oslProcess Process) @@ -446,16 +446,10 @@ oslProcessError SAL_CALL osl_getEnvironment(rtl_uString *ustrVar, rtl_uString ** oslProcessError SAL_CALL osl_setEnvironment(rtl_uString *ustrVar, rtl_uString *ustrValue) { // set Windows environment variable - LPCWSTR lpName = o3tl::toW(ustrVar->buffer); - LPCWSTR lpValue = o3tl::toW(ustrValue->buffer); - if (SetEnvironmentVariableW(lpName, lpValue)) + if (SetEnvironmentVariableW(o3tl::toW(ustrVar->buffer), o3tl::toW(ustrValue->buffer))) { - auto buffer = std::unique_ptr<wchar_t[]>( - new wchar_t[wcslen(lpName) + 1 + wcslen(lpValue) + 1]); - wcscpy(buffer.get(), lpName); - wcscat(buffer.get(), L"="); - wcscat(buffer.get(), lpValue); - _wputenv(buffer.get()); + OUString sAssign = OUString::unacquired(&ustrVar) + "=" + OUString::unacquired(&ustrValue); + _wputenv(o3tl::toW(sAssign.getStr())); return osl_Process_E_None; } return osl_Process_E_Unknown; @@ -465,14 +459,10 @@ oslProcessError SAL_CALL osl_clearEnvironment(rtl_uString *ustrVar) { // delete the variable from the current process environment // by setting SetEnvironmentVariable's second parameter to NULL - LPCWSTR lpName = o3tl::toW(ustrVar->buffer); - if (SetEnvironmentVariableW(lpName, nullptr)) + if (SetEnvironmentVariableW(o3tl::toW(ustrVar->buffer), nullptr)) { - auto buffer = std::unique_ptr<wchar_t[]>( - new wchar_t[wcslen(lpName) + 1 + 1]); - wcscpy(buffer.get(), lpName); - wcscat(buffer.get(), L"="); - _wputenv(buffer.get()); + OUString sAssign = OUString::unacquired(&ustrVar) + "="; + _wputenv(o3tl::toW(sAssign.getStr())); return osl_Process_E_None; } return osl_Process_E_Unknown; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits