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

Re: SPARK handling of String constants



I have been playing around with string constants a bit lately, so these
things have been changing, but I think the following is true of the
1.2.5 release. When Spark encounters a String constant, it checks to see
if its constant value is the name of a class. If it is, the constant
gets represented by a StringConstantNode unique to that constant, so
Spark can later identify the constant if it reaches a reflective call.
All constants that are not the names of classes that Soot knows about
are represented by a single AllocNode, since it doesn't make much sense
to distinguish them, and there tend to be many of them.

Ondrej

On Fri, Apr 18, 2003 at 10:58:31AM -0700, Manu Sridharan wrote:
> Hi,
> 
> I am trying to understand how SPARK handles String constants.  Browsing 
> the source and writing a couple of small tests seemed to indicate that all 
> String constants all unified, so any two String variables that are 
> assigned a String constant will have intersecting points-to sets.  
> However, I believe that SPARK also attempts to figure out the targets of 
> reflective calls through inspecting String constant values.  Is there any 
> documentation on how exactly SPARK handles Strings?  This is for the 1.2.5 
> release, BTW.
> 
> Thanks,
> Manu
>