aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/javassist/reflect/ClassMetaobject.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/javassist/reflect/ClassMetaobject.java')
-rw-r--r--src/main/javassist/reflect/ClassMetaobject.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main/javassist/reflect/ClassMetaobject.java b/src/main/javassist/reflect/ClassMetaobject.java
index bfbc3f48..61328452 100644
--- a/src/main/javassist/reflect/ClassMetaobject.java
+++ b/src/main/javassist/reflect/ClassMetaobject.java
@@ -251,7 +251,8 @@ public class ClassMetaobject implements Serializable {
Class baseclass = getJavaClass();
Method[] allmethods = baseclass.getDeclaredMethods();
int n = allmethods.length;
- methods = new Method[n];
+ int[] index = new int[n];
+ int max = 0;
for (int i = 0; i < n; ++i) {
Method m = allmethods[i];
String mname = m.getName();
@@ -265,10 +266,17 @@ public class ClassMetaobject implements Serializable {
break;
}
- methods[k] = m;
+ index[i] = ++k;
+ if (k > max)
+ max = k;
}
}
+ methods = new Method[max];
+ for (int i = 0; i < n; ++i)
+ if (index[i] > 0)
+ methods[index[i] - 1] = allmethods[i];
+
return methods;
}