From 204711f614d952701f680a25c1b1df55b6fbd3c3 Mon Sep 17 00:00:00 2001 From: pierre Date: Tue, 2 Jul 2013 12:52:32 +0000 Subject: Fix jvm compiler compilation failure after rev 25013 git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25028 3ad0048d-3df7-0310-abae-a5850022a9f2 --- compiler/jvm/njvmcal.pas | 6 +++--- compiler/jvm/njvmld.pas | 4 ++-- compiler/jvm/njvmmem.pas | 5 +++-- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'compiler/jvm') diff --git a/compiler/jvm/njvmcal.pas b/compiler/jvm/njvmcal.pas index d1ebac0620..1202ed2d9a 100644 --- a/compiler/jvm/njvmcal.pas +++ b/compiler/jvm/njvmcal.pas @@ -124,7 +124,7 @@ implementation begin parent:=tunarynode(p); { skip typeconversions that don't change the node type } - p:=p.actualtargetnode; + p:=actualtargetnode(@p)^; end; derefn: begin @@ -239,8 +239,8 @@ implementation local variables (fields, arrays etc are all initialized on creation) } verifyout:= (cs_check_var_copyout in current_settings.localswitches) and - ((left.actualtargetnode.nodetype<>loadn) or - (tloadnode(left.actualtargetnode).symtableentry.typ<>localvarsym)); + ((actualtargetnode(@left)^.nodetype<>loadn) or + (tloadnode(actualtargetnode(@left)^).symtableentry.typ<>localvarsym)); { in case of a non-out parameter, pass in the original value (also always in case of implicitpointer type, since that pointer points to diff --git a/compiler/jvm/njvmld.pas b/compiler/jvm/njvmld.pas index 8008b0ff0f..529d62423b 100644 --- a/compiler/jvm/njvmld.pas +++ b/compiler/jvm/njvmld.pas @@ -62,7 +62,7 @@ implementation uses verbose,globals, - nbas,nld,ncal,ncon,ninl,nmem,ncnv, + nbas,nld,ncal,ncon,ninl,nmem,ncnv,nutils, symconst,symsym,symdef,symtable,defutil,jvmdef, paramgr, pass_1, @@ -100,7 +100,7 @@ function tjvmassignmentnode.pass_1: tnode; { intercept writes to string elements, because Java strings are immutable -> detour via StringBuilder } - target:=left.actualtargetnode; + target:=actualtargetnode(@left)^; if (target.nodetype=vecn) and (is_wide_or_unicode_string(tvecnode(target).left.resultdef) or is_ansistring(tvecnode(target).left.resultdef)) then diff --git a/compiler/jvm/njvmmem.pas b/compiler/jvm/njvmmem.pas index 75ac07f0a9..5f3241641a 100644 --- a/compiler/jvm/njvmmem.pas +++ b/compiler/jvm/njvmmem.pas @@ -63,7 +63,8 @@ implementation aasmbase, symconst,symtype,symtable,symsym,symdef,defutil,jvmdef, htypechk,paramgr, - nadd,ncal,ncnv,ncon,nld,pass_1,njvmcon, + nadd,ncal,ncnv,ncon,nld,nutils, + pass_1,njvmcon, aasmdata,aasmcpu,pass_2, cgutils,hlcgobj,hlcgcpu; @@ -151,7 +152,7 @@ implementation var target: tnode; begin - target:=left.actualtargetnode; + target:=actualtargetnode(@left)^; result:= (left.nodetype=derefn); end; -- cgit v1.2.1