emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java
changeset 420 3497ecd097df
parent 418 c0bbf144c2c6
child 430 b4940ef87438
     1.1 --- a/emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java	Tue Jan 08 16:01:25 2013 +0100
     1.2 +++ b/emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java	Tue Jan 08 16:32:11 2013 +0100
     1.3 @@ -66,11 +66,21 @@
     1.4      public static Method findMethod(
     1.5          Class<?> clazz, String name, Class<?>... parameterTypes) {
     1.6          Object[] data = findMethodData(clazz, name + "__");
     1.7 -        if (data.length == 0) {
     1.8 -            return null;
     1.9 +        BIG: for (int i = 0; i < data.length; i += 2) {
    1.10 +            String sig = ((String) data[0]).substring(name.length() + 2);
    1.11 +            Method tmp = INSTANCE.create(clazz, name, data[1], sig);
    1.12 +            Class<?>[] tmpParms = tmp.getParameterTypes();
    1.13 +            if (parameterTypes.length != tmpParms.length) {
    1.14 +                continue;
    1.15 +            }
    1.16 +            for (int j = 0; j < tmpParms.length; j++) {
    1.17 +                if (!parameterTypes[j].equals(tmpParms[j])) {
    1.18 +                    continue BIG;
    1.19 +                }
    1.20 +            }
    1.21 +            return tmp;
    1.22          }
    1.23 -        String sig = ((String) data[0]).substring(name.length() + 2);
    1.24 -        return INSTANCE.create(clazz, name, data[1], sig);
    1.25 +        return null;
    1.26      }
    1.27  
    1.28      public static Method[] findMethods(Class<?> clazz, int mask) {