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

Re: Exception when subject class extends a library class



On Tue, Jul 27, 2004 at 09:33:51PM +0100, Neil Walkinshaw wrote:
> I have attached GizmoGui$1.class as you requested. I have also attached 
> GizmoGui.class and the source code. If you need the rest of the app to 
> satisfy any dependencies the class has, I can send you the jar file, 
> it's only 170k.

Thanks.

The problem was incorrect handling of the case when the local variable
name table is missing an entry for a certain local. In this case, the
variable was one that was generated by javac to pass the outer class
into the anonymous inner class, and since it was generated, it had no
name and therefore no table entry.

The attached patch fixes the problem in both soot-2.1.0 and on the
trunk. To apply it, in your soot directory (one with src in it), do:
   patch -p0 < /tmp/patch.txt
I've committed it as revision 1668 and it will be included in the next
release of Soot.

Ondrej


> 
> Thanks alot for your help,
> 
> best regards,
> 
> Neil
Index: src/soot/coffi/Util.java
===================================================================
--- src/soot/coffi/Util.java	(revision 1664)
+++ src/soot/coffi/Util.java	(working copy)
@@ -770,6 +770,7 @@
      * @author Patrick Lam
      */
     boolean isValidJimpleName(String prospectiveName) {
+        if(prospectiveName == null) return false;
 	for (int i = 0; i < prospectiveName.length(); i++) {
 	    char c = prospectiveName.charAt(i);
 	    if (i == 0 && c >= '0' && c <= '9')