summaryrefslogtreecommitdiff
path: root/compiler/jvm
diff options
context:
space:
mode:
authorpierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-07-02 12:52:32 +0000
committerpierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2>2013-07-02 12:52:32 +0000
commit204711f614d952701f680a25c1b1df55b6fbd3c3 (patch)
tree60224ec2e93d565cfdeff89bf7e77f7b4bef258e /compiler/jvm
parent8adcf595f2a555ffc4d1f0465393d64bde45ae8c (diff)
downloadfpc-204711f614d952701f680a25c1b1df55b6fbd3c3.tar.gz
Fix jvm compiler compilation failure after rev 25013
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25028 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/jvm')
-rw-r--r--compiler/jvm/njvmcal.pas6
-rw-r--r--compiler/jvm/njvmld.pas4
-rw-r--r--compiler/jvm/njvmmem.pas5
3 files changed, 8 insertions, 7 deletions
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;