diff --git a/compiler/jvm/njvmcnv.pas b/compiler/jvm/njvmcnv.pas index 0721ba7489..709d1c634c 100644 --- a/compiler/jvm/njvmcnv.pas +++ b/compiler/jvm/njvmcnv.pas @@ -55,6 +55,7 @@ interface { procedure second_real_to_real;override; } { procedure second_cord_to_pointer;override; } procedure second_proc_to_procvar;override; + procedure second_nil_to_methodprocvar;override; procedure second_bool_to_int;override; procedure second_int_to_bool;override; { procedure second_load_smallset;override; } @@ -683,6 +684,17 @@ implementation end; + procedure tjvmtypeconvnode.second_nil_to_methodprocvar; + var + r: Treference; + begin + tg.gethltemp(current_asmdata.currasmlist,java_jlobject,java_jlobject.size,tt_normal,r); + hlcg.a_load_const_ref(current_asmdata.CurrAsmList,java_jlobject,0,r); + location_reset_ref(location,LOC_REFERENCE,def_cgsize(resultdef),1); + location.reference:=r; + end; + + procedure tjvmtypeconvnode.second_bool_to_int; var newsize: tcgsize; diff --git a/compiler/ncgcnv.pas b/compiler/ncgcnv.pas index 3d3b8048da..cfe52e4602 100644 --- a/compiler/ncgcnv.pas +++ b/compiler/ncgcnv.pas @@ -578,19 +578,7 @@ interface end; procedure Tcgtypeconvnode.second_nil_to_methodprocvar; - {$ifdef jvm} - var r:Treference; - {$endif} begin -{$ifdef jvm} -{$ifndef nounsupported} - tg.gethltemp(current_asmdata.currasmlist,java_jlobject,java_jlobject.size,tt_normal,r); - hlcg.a_load_const_ref(current_asmdata.CurrAsmList,java_jlobject,0,r); - location_reset_ref(location,LOC_REFERENCE,def_cgsize(resultdef),1); - location.reference:=r; - exit; -{$endif} -{$endif} location_reset(location,LOC_REGISTER,def_cgsize(resultdef)); location.registerhi:=cg.getaddressregister(current_asmdata.currasmlist); cg.a_load_const_reg(current_asmdata.currasmlist,OS_ADDR,0,location.registerhi);