[Soot-list] How can I change method's parameters types
Amir Mehrabi
mehrabi at comp.iust.ac.ir
Sun Feb 8 04:23:31 EST 2009
Hi Eric
For your idea I write a class like this:
class myThread implements Runnable {
Thread t;
MyTransformer f;
String Parameter;
public myThread(String Param){
Parameter=Param;
t=new Thread(this);
t.start();
}
public void run(){
f= new MyTransformer();
PackManager.v().getPack("jtp").add(new Transform("jtp.trnsform",f));
String[] Args=Parameter.split(" ");
soot.Main.main(Args);
}
}
And in my program just initiate myThread like this:
...
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
myThread t=new myThread("-app Test.TestClass3");
}
...
But unfortunately I receive an exception again :
Exception in thread "thread-2" java.util.ConcurrentModificationException
at
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
....
I don't know what's the problem!
Please help me.
Thank you
Amir Mehrabi J.
-----Original Message-----
From: Eric Bodden <eric.bodden at mail.mcgill.ca>
To: Amir Mehrabi <mehrabi at comp.iust.ac.ir>
Cc: soot-list at sable.mcgill.ca
Date: Sat, 7 Feb 2009 10:00:44 -0500
Subject: Re: [Soot-list] How can I change method's parameters types
Hi Amir.
To me that seems like a threading problem, not a problem with Soot.
Are you running your Soot within the AWT event-dispatch thread? If so,
you may need to change that.
Eric
2009/2/7 Amir Mehrabi <mehrabi at comp.iust.ac.ir>:
> Hi all
> I want to change type of my method's parameter
> How can I do this?
> for example
> I Have a method like :
> public void sample(int a,TestClass c);
>
> I want to change the type of these method to
> public void sample(int a,long c);
>
> when I want to do this in BodyTransformer , soot throws an exception , the
> following code are a portial of my code
>
> ...
> protected void internalTransform(Body body,String phasename,Map option){
>
> List lst=body.getMethod().getParameterTypes();
> for(int i=0;i< lst.size() ; i++)
> {
> lst.add(RefType.v("MyPackage.MyClass"));
> }
> body.getMethod.setParameterTypes(lst); <==== throws an exception
> ...
> }
>
>
> THROWS :
> Exception in thread "AWT-EventQueue-0"
> java.util.ConcurrentModificationException
>
>
> any body have an idea?!
>
> Thanks
> Amir Mehrabi Jorshary
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>
--
Eric Bodden
Sable Research Group, McGill University
Montréal, Québec, Canada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20090208/f318c277/attachment.html
More information about the Soot-list
mailing list