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

[PATCH] fix for bug #85



Hi,

I reported a bug and then found a fix, but can't seem to update
the bug in the bug DB. So here's the fix (at least it seems to
work) for bug #85.

The fix is: if INVOKEVIRUTAL or INVOKEINTERFACE specifies a method
of an array class, replace the array class name with "java.lang.Object"
and proceed.

Thanks,
-Archie

__________________________________________________________________________
Archie Cobbs     *    Halloo Communications    *     http://www.halloo.com

diff -ur --new-file soot-2.1.0.orig/src/soot/coffi/CFG.java soot-2.1.0/src/soot/coffi/CFG.java
--- soot-2.1.0.orig/src/soot/coffi/CFG.java	2003-12-18 11:43:05.000000000 -0600
+++ soot-2.1.0/src/soot/coffi/CFG.java	2004-01-27 21:17:22.000000000 -0600
@@ -4431,6 +4431,9 @@
             String methodDescriptor = ((CONSTANT_Utf8_info) (constant_pool[i.descriptor_index])).
                 convert();
 
+	    if (className.charAt(0) == '[')
+	    	className = "java.lang.Object";
+
             SootClass bclass = cm.getSootClass(className);
 
             Local[] parameters;
@@ -4660,6 +4663,9 @@
                 String methodDescriptor = ((CONSTANT_Utf8_info) (constant_pool[i.descriptor_index])).
                     convert();
 
+		if (className.charAt(0) == '[')
+		    className = "java.lang.Object";
+
                 SootClass bclass = cm.getSootClass(className);
 
                 Local[] parameters;