From 73904f5b110a47b49a338fb6955d37c59b7ef4c0 Mon Sep 17 00:00:00 2001 From: Brian White Date: Sat, 24 Aug 2013 14:01:04 -0400 Subject: [PATCH 1/3] Remove unused variables --- src/java.cpp | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/java.cpp b/src/java.cpp index bc159184..5bda72ff 100644 --- a/src/java.cpp +++ b/src/java.cpp @@ -270,8 +270,6 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { JavaScope javaScope(env); int argsStart = 0; - int argsEnd = args.Length(); - UNUSED_VARIABLE(argsEnd); ARGS_FRONT_STRING(interfaceName); ARGS_FRONT_OBJECT(functions); @@ -411,8 +409,6 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { JavaScope javaScope(env); int argsStart = 0; - int argsEnd = args.Length(); - UNUSED_VARIABLE(argsEnd); // arguments ARGS_FRONT_CLASSNAME(); @@ -441,7 +437,6 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { JavaScope javaScope(env); int argsStart = 0; - int argsEnd = args.Length(); // arguments ARGS_FRONT_CLASSNAME(); @@ -454,8 +449,6 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { } v8::Local arrayObj = v8::Local::Cast(args[argsStart]); - UNUSED_VARIABLE(argsEnd); - // find class and method jarray results; if(strcmp(className.c_str(), "byte") == 0) { @@ -551,12 +544,10 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { JavaScope javaScope(env); int argsStart = 0; - int argsEnd = args.Length(); // arguments ARGS_FRONT_CLASSNAME(); ARGS_FRONT_STRING(fieldName); - UNUSED_VARIABLE(argsEnd); // find the class jclass clazz = javaFindClass(env, className); @@ -599,7 +590,6 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { JavaScope javaScope(env); int argsStart = 0; - int argsEnd = args.Length(); // arguments ARGS_FRONT_CLASSNAME(); @@ -614,8 +604,6 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { jobject newValue = v8ToJava(env, args[argsStart]); argsStart++; - UNUSED_VARIABLE(argsEnd); - // find the class jclass clazz = javaFindClass(env, className); if(clazz == NULL) { From ccbc0b6010dce0c81691347b1a04cd0a347a5f8f Mon Sep 17 00:00:00 2001 From: Brian White Date: Sat, 24 Aug 2013 14:01:27 -0400 Subject: [PATCH 2/3] Fix memory leaks on exception --- src/java.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/java.cpp b/src/java.cpp index 5bda72ff..da1126db 100644 --- a/src/java.cpp +++ b/src/java.cpp @@ -138,6 +138,7 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { for(uint32_t i=0; iLength(); i++) { v8::Local arrayItemValue = optionsArray->Get(i); if(!arrayItemValue->IsString()) { + delete[] vmOptions; return ThrowException(v8::Exception::TypeError(v8::String::New("options must only contain strings"))); } v8::Local arrayItem = arrayItemValue->ToString(); @@ -287,6 +288,7 @@ v8::Handle Java::createJVM(JavaVM** jvm, JNIEnv** env) { if(clazz == NULL) { std::ostringstream errStr; errStr << "Could not create class node/NodeDynamicProxyClass"; + delete dynamicProxyData; return ThrowException(javaExceptionToV8(env, errStr.str())); } From b64f8ba7acb7d182b9dfefc8ee67110d4ec52552 Mon Sep 17 00:00:00 2001 From: Brian White Date: Sat, 24 Aug 2013 14:02:37 -0400 Subject: [PATCH 3/3] Use pre-increment for iterators Pre-increment/decrement can be more efficient than post-increment/decrement. Post-increment/decrement usually involves keeping a copy of the previous value around and adds a little extra code. --- src/javaObject.cpp | 4 ++-- src/utils.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/javaObject.cpp b/src/javaObject.cpp index 888613f9..09c3420b 100644 --- a/src/javaObject.cpp +++ b/src/javaObject.cpp @@ -43,7 +43,7 @@ javaReflectionGetMethods(env, objClazz, &methods, false); jclass methodClazz = env->FindClass("java/lang/reflect/Method"); jmethodID method_getName = env->GetMethodID(methodClazz, "getName", "()Ljava/lang/String;"); - for(std::list::iterator it = methods.begin(); it != methods.end(); it++) { + for(std::list::iterator it = methods.begin(); it != methods.end(); ++it) { jstring methodNameJava = (jstring)env->CallObjectMethod(*it, method_getName); std::string methodNameStr = javaToString(env, methodNameJava); @@ -60,7 +60,7 @@ javaReflectionGetFields(env, objClazz, &fields); jclass fieldClazz = env->FindClass("java/lang/reflect/Field"); jmethodID field_getName = env->GetMethodID(fieldClazz, "getName", "()Ljava/lang/String;"); - for(std::list::iterator it = fields.begin(); it != fields.end(); it++) { + for(std::list::iterator it = fields.begin(); it != fields.end(); ++it) { jstring fieldNameJava = (jstring)env->CallObjectMethod(*it, field_getName); std::string fieldNameStr = javaToString(env, fieldNameJava); diff --git a/src/utils.cpp b/src/utils.cpp index a5c44755..f6056de3 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -665,7 +665,7 @@ std::string methodNotFoundToString(JNIEnv *env, jclass clazz, std::string method } int count = 0; - for(std::list::iterator it = methods.begin(); it != methods.end(); it++) { + for(std::list::iterator it = methods.begin(); it != methods.end(); ++it) { jstring methodNameTestJava = (jstring)env->CallObjectMethod(*it, member_getName); std::string methodNameTest = javaToString(env, methodNameTestJava); if(methodNameTest == methodName) {