summaryrefslogtreecommitdiffstats
path: root/jvmfwk/source/elements.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'jvmfwk/source/elements.cxx')
-rw-r--r--jvmfwk/source/elements.cxx20
1 files changed, 8 insertions, 12 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();
}