diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-04-13 12:08:05 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-04-13 17:32:42 +0200 |
commit | 41a20d3b3750fa6eeb8061af9dd25723d4698feb (patch) | |
tree | 42b0eb8f37e94975a39a6b6fe9412253f384939d /jvmfwk/source | |
parent | 316536b2e8da23d9f91d75f79cf64b0bf21f84aa (diff) |
More std::unique_ptr<JavaInfo> lifecycle management
Change-Id: If53347633ec4b2f8c2b221ba2057e0c38fa97b67
Diffstat (limited to 'jvmfwk/source')
-rw-r--r-- | jvmfwk/source/elements.cxx | 20 | ||||
-rw-r--r-- | jvmfwk/source/framework.cxx | 4 |
2 files changed, 10 insertions, 14 deletions
diff --git a/jvmfwk/source/elements.cxx b/jvmfwk/source/elements.cxx index 4da38c001ed9..353eab37ba6f 100644 --- a/jvmfwk/source/elements.cxx +++ b/jvmfwk/source/elements.cxx @@ -20,6 +20,7 @@ #include <sal/config.h> #include <cassert> +#include <memory> #include "elements.hxx" #include "osl/mutex.hxx" @@ -925,19 +926,14 @@ void CNodeJavaInfo::writeToNode(xmlDoc* pDoc, xmlAddChild(pJavaInfoNode, nodeCrLf); } -JavaInfo * CNodeJavaInfo::makeJavaInfo() const +std::unique_ptr<JavaInfo> CNodeJavaInfo::makeJavaInfo() const { if (bNil || m_bEmptyNode) - return nullptr; - JavaInfo * pInfo = new JavaInfo; - memset(pInfo, 0, sizeof(JavaInfo)); - pInfo->sVendor = sVendor; - pInfo->sLocation = sLocation; - pInfo->sVersion = sVersion; - pInfo->nFeatures = nFeatures; - pInfo->nRequirements = nRequirements; - pInfo->arVendorData = arVendorData; - return pInfo; + return std::unique_ptr<JavaInfo>(); + return std::unique_ptr<JavaInfo>( + new JavaInfo{ + sVendor, sLocation, sVersion, nFeatures, nRequirements, + arVendorData}); } @@ -1002,7 +998,7 @@ void MergedSettings::merge(const NodeJava & share, const NodeJava & user) } -JavaInfo * MergedSettings::createJavaInfo() const +std::unique_ptr<JavaInfo> MergedSettings::createJavaInfo() const { return m_javaInfo.makeJavaInfo(); } diff --git a/jvmfwk/source/framework.cxx b/jvmfwk/source/framework.cxx index 42d99557fc0b..b4e94e0d93bf 100644 --- a/jvmfwk/source/framework.cxx +++ b/jvmfwk/source/framework.cxx @@ -213,7 +213,7 @@ javaFrameworkError jfw_startVM( const jfw::MergedSettings settings; if (!settings.getEnabled()) return JFW_E_JAVA_DISABLED; - aInfo.reset(settings.createJavaInfo()); + aInfo = settings.createJavaInfo(); //check if a Java has ever been selected if (!aInfo) return JFW_E_NO_SELECT; @@ -650,7 +650,7 @@ javaFrameworkError jfw_getSelectedJRE(std::unique_ptr<JavaInfo> *ppInfo) } const jfw::MergedSettings settings; - ppInfo->reset(settings.createJavaInfo()); + *ppInfo = settings.createJavaInfo(); if (!*ppInfo) { return JFW_E_NONE; |