[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re:



I have noticed that this is coused by the bytecode generated with
javac from JSDK 1.4
 
take a loot at this(maybe the reason):
http://developer.java.sun.com/developer/bugParade/bugs/4450558.html
 
need to fix this.
mike.
 
----- Original Message -----
From: Mike
To: soot-list@sable.mcgill.ca
Sent: Wednesday, May 29, 2002 5:12 PM

Hi,
    After traversing through all the methods in the allication
sootClass.getMethods() return methods in the sootClass
plus the methods in it's super class.
 
Here is a portion of the code that I'm talkign about:
 
String phase = "wjtp.profiler";
Iterator classesIt = Scene.v().getApplicationClasses().iterator();
        while (classesIt.hasNext()) {
            SootClass sClass = (SootClass)classesIt.next();
            Object[] methodIt = sClass.getMethods().toArray(); // Using Iterator has the same affect
            SootMethod method = null;
            for(int i = 0; i < methodIt.length; i++) {
                try{
                    method = (SootMethod)methodIt[i];
                    if (!Modifier.isNative(method.getModifiers()) && method.isConcrete() && !method.hasActiveBody())
                    method.setActiveBody((JimpleBody)method.getBodyFromMethodSource(phase));
                }catch(Exception e){
                    System.out.println("Err assigning body to "  + method + "\n\tThere may be more problems ahead.");
                }
            }
        }
 
after running this code whenever I call sootClass.getMethods() i get all methods
even the ones that are in the super class of sootClass.
 
I've been using soot for quite a long time now and I've never seen
this happen. Please help me, what could be causing it? I'm using
JVM 1.4 and soot 1.2.3, But this also occurs with JVM 1.3.1 and
soot 1.2.2
 
Thanks.
Mike.