Reviewed by Jon.
[WebKit-https.git] / WebCore / bridge / jni / jni_runtime.cpp
index 7d7cb31fb9f58d7e66dc190ab1b4fb5449676377..671fd35ab288f5404c704f50814f5cc1492427b3 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 #include "config.h"
-#include <internal.h>
-#include <ustring.h>
-#include <value.h>
 
 #include <jni_utility.h>
 #include <jni_runtime.h>
 
-#include <runtime_array.h>
-#include <runtime_object.h>
-#include <runtime_root.h>
+#include "runtime_array.h"
+#include "runtime_object.h"
+#include "runtime_root.h"
 
 #ifdef NDEBUG
 #define JS_LOG(formatAndArgs...) ((void)0)
@@ -56,13 +53,13 @@ JavaParameter::JavaParameter (JNIEnv *env, jstring type)
 JavaField::JavaField (JNIEnv *env, jobject aField)
 {
     // Get field type
-    jobject fieldType = callJNIObjectMethod (aField, "getType", "()Ljava/lang/Class;");
-    jstring fieldTypeName = (jstring)callJNIObjectMethod (fieldType, "getName", "()Ljava/lang/String;");
+    jobject fieldType = callJNIMethod<jobject>(aField, "getType", "()Ljava/lang/Class;");
+    jstring fieldTypeName = (jstring)callJNIMethod<jobject>(fieldType, "getName", "()Ljava/lang/String;");
     _type = JavaString(env, fieldTypeName);
     _JNIType = JNITypeFromClassName (_type.UTF8String());
 
     // Get field name
-    jstring fieldName = (jstring)callJNIObjectMethod (aField, "getName", "()Ljava/lang/String;");
+    jstring fieldName = (jstring)callJNIMethod<jobject>(aField, "getName", "()Ljava/lang/String;");
     _name = JavaString(env, fieldName);
 
     _field = new JObjectWrapper(aField);
@@ -248,27 +245,27 @@ void JavaField::setValueToInstance(ExecState *exec, const Instance *i, JSValue *
 JavaMethod::JavaMethod (JNIEnv *env, jobject aMethod)
 {
     // Get return type
-    jobject returnType = callJNIObjectMethod (aMethod, "getReturnType", "()Ljava/lang/Class;");
-    jstring returnTypeName = (jstring)callJNIObjectMethod (returnType, "getName", "()Ljava/lang/String;");
+    jobject returnType = callJNIMethod<jobject>(aMethod, "getReturnType", "()Ljava/lang/Class;");
+    jstring returnTypeName = (jstring)callJNIMethod<jobject>(returnType, "getName", "()Ljava/lang/String;");
     _returnType =JavaString (env, returnTypeName);
     _JNIReturnType = JNITypeFromClassName (_returnType.UTF8String());
     env->DeleteLocalRef (returnType);
     env->DeleteLocalRef (returnTypeName);
 
     // Get method name
-    jstring methodName = (jstring)callJNIObjectMethod (aMethod, "getName", "()Ljava/lang/String;");
+    jstring methodName = (jstring)callJNIMethod<jobject>(aMethod, "getName", "()Ljava/lang/String;");
     _name = JavaString (env, methodName);
     env->DeleteLocalRef (methodName);
 
     // Get parameters
-    jarray jparameters = (jarray)callJNIObjectMethod (aMethod, "getParameterTypes", "()[Ljava/lang/Class;");
+    jarray jparameters = (jarray)callJNIMethod<jobject>(aMethod, "getParameterTypes", "()[Ljava/lang/Class;");
     _numParameters = env->GetArrayLength (jparameters);
     _parameters = new JavaParameter[_numParameters];
     
     int i;
     for (i = 0; i < _numParameters; i++) {
         jobject aParameter = env->GetObjectArrayElement ((jobjectArray)jparameters, i);
-        jstring parameterName = (jstring)callJNIObjectMethod (aParameter, "getName", "()Ljava/lang/String;");
+        jstring parameterName = (jstring)callJNIMethod<jobject>(aParameter, "getName", "()Ljava/lang/String;");
         _parameters[i] = JavaParameter(env, parameterName);
         env->DeleteLocalRef (aParameter);
         env->DeleteLocalRef (parameterName);
@@ -280,8 +277,8 @@ JavaMethod::JavaMethod (JNIEnv *env, jobject aMethod)
     _methodID = 0;
     
     jclass modifierClass = env->FindClass("java/lang/reflect/Modifier");
-    int modifiers = callJNIIntMethod (aMethod, "getModifiers", "()I");
-    _isStatic = (bool)callJNIStaticBooleanMethod (modifierClass, "isStatic", "(I)Z", modifiers);
+    int modifiers = callJNIMethod<jint>(aMethod, "getModifiers", "()I");
+    _isStatic = (bool)callJNIStaticMethod<jboolean>(modifierClass, "isStatic", "(I)Z", modifiers);
 }
 
 JavaMethod::~JavaMethod()