Selaa lähdekoodia

* fixed JVM stack height calculation after calls returning an
implicit pointer tpe

git-svn-id: trunk@48832 -

Jonas Maebe 4 vuotta sitten
vanhempi
commit
ab0531f0ce
1 muutettua tiedostoa jossa 4 lisäystä ja 0 poistoa
  1. 4 0
      compiler/jvm/hlcgcpu.pas

+ 4 - 0
compiler/jvm/hlcgcpu.pas

@@ -2292,6 +2292,10 @@ implementation
       { a constructor doesn't actually return a value in the jvm }
       if (tabstractprocdef(pd).proctypeoption=potype_constructor) then
         totalremovesize:=paraheight
+      else if jvmimplicitpointertype(realresdef) then
+        totalremovesize:=paraheight-1
+      else if is_void(realresdef) then
+        totalremovesize:=paraheight
       else
         { even a byte takes up a full stackslot -> align size to multiple of 4 }
         totalremovesize:=paraheight-(align(realresdef.size,4) shr 2);