* src/vm/jit/stack.c (stack_analyse): The javalocals array can have
authoredwin <none@none>
Tue, 17 Apr 2007 19:24:05 +0000 (19:24 +0000)
committeredwin <none@none>
Tue, 17 Apr 2007 19:24:05 +0000 (19:24 +0000)
negative values != UNUSED (these values < UNUSED represent
returnAddresses of local subroutines). Thus >= 0 must be used to
check for normal indices.

src/vm/jit/stack.c

index 6fb32e58b97332d84a12c41af2ddfa9154dcb7ce..1ea4ab064885a0789c889da1872b9cf1a821a019 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: stack.c 7713 2007-04-15 21:49:48Z twisti $
+   $Id: stack.c 7736 2007-04-17 19:24:05Z edwin $
 
 */
 
@@ -3290,7 +3290,7 @@ normal_ACONST:
 
                                                /* invalidate 2-word types if second half was overwritten */
 
-                                               if (javaindex > 0 && (i = sd.javalocals[javaindex-1]) != UNUSED) {
+                                               if (javaindex > 0 && (i = sd.javalocals[javaindex-1]) >= 0) {
                                                        if (IS_2_WORD_TYPE(sd.var[i].type)) {
                                                                sd.javalocals[javaindex-1] = UNUSED;
                                                                iptr->flags.bits |= INS_FLAG_KILL_PREV;