[Soot-list] A BUG about JimpleConstructorFolder and Line number or any options I did not turn on?

Chris Pickett chris.pickett at mail.mcgill.ca
Mon Apr 9 20:02:14 EDT 2007


Chris Pickett wrote:
> Hi Peng,
> 
> Please do:
> 
> $ diff -u JimpleConstructorFolder.java.org JimpleConstructorFolder.java 
                                         ^^^^^
                                 orig, even, but it doesn't matter

Alternatively, if you are using svn, just do :

$ svn diff > JimpleConstructorFolder.patch

Cheers,
Chris

>  > JimpleConstructorFolder.patch
> 
> and attach JimpleConstructorFolder.patch to a message sent to the 
> mailing list; Eric and Pat can then review your changes and decide what 
> to incorporate.
> 
> Thanks!
> Chris
> 
> Peng Li wrote:
>> HI Patrick and Eric,
>>
>> Thank you very much for your quick replies. I have done the
>> modification, which is very simple. we just need to add two new lines
>> "  LineNumberTag tag = (LineNumberTag)s.getTag("LineNumberTag");
>> constructStmt.addTag(tag);" after the making new stmt "   AssignStmt
>> constructStmt =
>> Jimple.v().newAssignStmt(((DefinitionStmt)s).getLeftOp(),
>> ((DefinitionStmt)s).getRightOp());"
>>
>> I have done some other changes for this transformer. I added a table
>> which can map the old hashcode of each newexpr to the corresponding
>> new hashcode for my purpose. I dont know if the soot list people
>> would like to see that, so I did not send it to the list. Please let
>> me know if you would like to see my code.
>>
>> Thank you very much for your help.
>>
>> Cheers
>> Peng
>>
>> 2007/4/9, Eric Bodden <eric.bodden at mail.mcgill.ca>:
>>> We don't create a new-statement, we just move it, from what I can see.
>>> (line 248)
>>>
>>> Eric
>>>
>>> On 09/04/07, Patrick Lam <plam at sable.mcgill.ca> wrote:
>>> > Peng Li wrote:
>>> > > private static int getLineNumber(Stmt s) {
>>> > >         Iterator ti = s.getTags().iterator();
>>> > >         while (ti.hasNext()) {
>>> > >             Object o = ti.next();
>>> > >             if (o instanceof LineNumberTag)
>>> > >             {
>>> > >             LineNumberTag linetag = (LineNumberTag) o;
>>> > >             return linetag.getLineNumber();
>>> > >             }
>>> > >         }
>>> > >         return -1;
>>> > >     }
>>> >
>>> > The JimpleConstructorFolder creates a new statement from a number 
>>> of old
>>> > statements in the original source code. However, it does not copy the
>>> > tags of the old statement to the new statement. It's not a bug, it's
>>> > just that no one has implemented that functionality.
>>> >
>>> > If you need that functionality, you'll have to modify the
>>> > JimpleConstructorFolder yourself so that when it creates a NewExpr, it
>>> > will also copy the relevant LineNumberTag (sort of like what you have
>>> > right now in your method, just that you add the tags to the new
>>> > statement).
>>> >
>>> > Please send your patch back to the list so that it can be added to the
>>> > Soot trunk for the next release!
>>> >
>>> > pat
>>> > _______________________________________________
>>> > 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, Canada
>>>
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> 


More information about the Soot-list mailing list