+ // TODO: We haven't been able to show the parameterized types
+ static int getGenericParameterTypes( MJIEnv env, MethodInfo mi) {
+ ThreadInfo ti = env.getThreadInfo();
+ String[] argTypeNames = mi.getArgumentGenericTypeNames();
+ int[] ar = new int[argTypeNames.length];
+
+ for (int i = 0; i < argTypeNames.length; i++) {
+ // Change this into just the generic class type if it is a generic class
+ String genericTypeName = argTypeNames[i];
+ int startOfGenericParameter = argTypeNames[i].indexOf('<');
+ if (startOfGenericParameter != -1) {
+ genericTypeName = argTypeNames[i].substring(0, startOfGenericParameter);
+ }
+ ClassInfo ci = ClassLoaderInfo.getCurrentResolvedClassInfo(genericTypeName);
+ if (!ci.isRegistered()) {
+ ci.registerClass(ti);
+ }
+
+ ar[i] = ci.getClassObjectRef();
+ }
+
+ int aRef = env.newObjectArray("Ljava/lang/reflect/Type;", argTypeNames.length);
+ for (int i = 0; i < argTypeNames.length; i++) {
+ env.setReferenceArrayElement(aRef, i, ar[i]);
+ }
+
+ return aRef;
+ }
+