* src/vm/jit/s390/md.c (md_get_method_patch_address): Fixed cornercase
authormichi <none@none>
Thu, 19 Jul 2007 16:33:19 +0000 (16:33 +0000)
committermichi <none@none>
Thu, 19 Jul 2007 16:33:19 +0000 (16:33 +0000)
for replacement.

* src/vm/jit/m68k/md.c (md_get_method_patch_address): Likewise.

src/vm/jit/m68k/md.c
src/vm/jit/s390/md.c

index 9b43d62e954131fbdb1ba40cca5f4ad1b72468e9..ff444fa5696c8ac6a83faeebc987f82d8ac8ff18 100644 (file)
@@ -122,6 +122,12 @@ u1* md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                        /* found an invokevirtual */
                        /* get offset of load instruction 246b XXXX */
                        offset = *((s2*)(ra - 4));
+
+                       /* return NULL if no mptr was specified (used for replacement) */
+
+                       if (mptr == NULL)
+                               return NULL;
+
                        pa = mptr + offset;                     /* mptr contains the magic we want */
                } else  {
                        /* we had a moveal XXX, %a3 which is a 3 word opcode */
index 23dedb80bb3ff26ff81556a0abf3b5a1e3a78766..3500d75bcbc5c5b263f01b7d1f0ac12dc546dced 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Edwin Steiner
 
-   $Id: md.c 8178 2007-07-05 11:13:20Z michi $
+   $Id: md.c 8218 2007-07-19 16:33:19Z michi $
 
 */
 
@@ -501,6 +501,11 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
 
                        offset = *((u2 *)(ra + 2)) & 0xFFF;
 
+                       /* return NULL if no mptr was specified (used for replacement) */
+
+                       if (mptr == NULL)
+                               return NULL;
+
                        /* add offset to method pointer */
                        
                        pa = mptr + offset;