summaryrefslogtreecommitdiff
path: root/jvmfwk/plugins
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2017-04-13 15:19:17 +0200
committerStephan Bergmann <sbergman@redhat.com>2017-04-13 17:32:43 +0200
commit626dec44e33727a56353efb7f4eee83e93bc2f3d (patch)
tree629bb290fee1689d1484d7c430b475da7082994e /jvmfwk/plugins
parent6925007c2a86d45a8d71f08ef46e56bb3eda21e3 (diff)
Use std::unique_ptr<JavaInfo> in jfw_plugin_getJavaInfosFromPath
...thereby fixing a memory leak Change-Id: I1aa91eeb407987abcdaa5221f4abd447f881c5d2
Diffstat (limited to 'jvmfwk/plugins')
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx10
1 files changed, 6 insertions, 4 deletions
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
index 7ade439ed694..da7f6218d0d3 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
@@ -32,6 +32,7 @@
#include <cassert>
#include <memory>
+#include <utility>
#include <vector>
#include "config_options.h"
@@ -424,14 +425,14 @@ javaPluginError jfw_plugin_getJavaInfoFromJavaHome(
javaPluginError jfw_plugin_getJavaInfosFromPath(
std::vector<std::pair<OUString, jfw::VersionInfo>> const& vecVendorInfos,
- std::vector<JavaInfo*> & javaInfosFromPath,
+ std::vector<std::unique_ptr<JavaInfo>> & javaInfosFromPath,
std::vector<rtl::Reference<jfw_plugin::VendorBase>> & infos)
{
// find JREs from PATH
vector<rtl::Reference<VendorBase>> vecInfosFromPath;
addJavaInfosFromPath(infos, vecInfosFromPath);
- vector<JavaInfo*> vecVerifiedInfos;
+ vector<std::unique_ptr<JavaInfo>> vecVerifiedInfos;
// copy infos of JREs that meet version requirements to vecVerifiedInfos
typedef vector<rtl::Reference<VendorBase> >::iterator it;
@@ -455,7 +456,8 @@ javaPluginError jfw_plugin_getJavaInfosFromPath(
if (errorcode == javaPluginError::NONE)
{
- vecVerifiedInfos.push_back(createJavaInfo(currentInfo));
+ vecVerifiedInfos.push_back(
+ std::unique_ptr<JavaInfo>(createJavaInfo(currentInfo)));
}
}
}
@@ -464,7 +466,7 @@ javaPluginError jfw_plugin_getJavaInfosFromPath(
if (vecVerifiedInfos.empty())
return javaPluginError::NoJre;
- javaInfosFromPath = vecVerifiedInfos;
+ javaInfosFromPath = std::move(vecVerifiedInfos);
return javaPluginError::NONE;
}