summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-01-29 12:28:57 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-01-29 21:46:21 +0100
commit3dbc42e56e5a84c2b1689063b6ff3530916f7e6a (patch)
treeceea066f70fd5b3d9782aa3dc233313cc3e5b988 /sal
parentff1e65afdc54a9f142202687c9c2949fdd7e8b69 (diff)
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.kaganski@collabora.com>
Diffstat (limited to 'sal')
-rw-r--r--sal/osl/w32/process.cxx24
1 files changed, 7 insertions, 17 deletions
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;