You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2016/11/04 21:59:34 UTC
[2/2] mesos git commit: Fixed memory leak in JVM code.
Fixed memory leak in JVM code.
Review: https://reviews.apache.org/r/53386/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/5974fc3e
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/5974fc3e
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/5974fc3e
Branch: refs/heads/master
Commit: 5974fc3e2d3a3ef0d1397259a2fee22f2c25cc4b
Parents: 55cb3cb
Author: Neil Conway <ne...@gmail.com>
Authored: Fri Nov 4 14:24:52 2016 -0700
Committer: Joseph Wu <jo...@apache.org>
Committed: Fri Nov 4 14:59:20 2016 -0700
----------------------------------------------------------------------
src/jvm/jvm.cpp | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/5974fc3e/src/jvm/jvm.cpp
----------------------------------------------------------------------
diff --git a/src/jvm/jvm.cpp b/src/jvm/jvm.cpp
index 62f7857..58bbb94 100644
--- a/src/jvm/jvm.cpp
+++ b/src/jvm/jvm.cpp
@@ -65,13 +65,6 @@ Try<Jvm*> Jvm::create(
}
#endif
- JavaVMOption* opts = new JavaVMOption[options.size()];
- for (size_t i = 0; i < options.size(); i++) {
- opts[i].optionString = const_cast<char*>(options[i].c_str());
- }
- vmArgs.nOptions = options.size();
- vmArgs.options = opts;
-
JavaVM* jvm = nullptr;
JNIEnv* env = nullptr;
Option<std::string> libJvmPath = os::getenv("JAVA_JVM_LIBRARY");
@@ -94,6 +87,16 @@ Try<Jvm*> Jvm::create(
return Error(symbol.error());
}
+ std::vector<JavaVMOption> opts(options.size());
+ for (size_t i = 0; i < options.size(); i++) {
+ opts[i].optionString = const_cast<char*>(options[i].c_str());
+ }
+
+ vmArgs.nOptions = opts.size();
+ if (!opts.empty()) {
+ vmArgs.options = &opts[0];
+ }
+
// typedef function pointer to JNI.
typedef jint (*fnptr_JNI_CreateJavaVM)(JavaVM**, void**, void*);
@@ -107,8 +110,6 @@ Try<Jvm*> Jvm::create(
return Error("Failed to create JVM!");
}
- delete[] opts;
-
return instance = new Jvm(jvm, version, exceptions);
}