diff options
Diffstat (limited to 'mips/compiler/jvm/hlcgcpu.pas')
-rw-r--r-- | mips/compiler/jvm/hlcgcpu.pas | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mips/compiler/jvm/hlcgcpu.pas b/mips/compiler/jvm/hlcgcpu.pas index 92f3d2ec56..7e317ae5bc 100644 --- a/mips/compiler/jvm/hlcgcpu.pas +++ b/mips/compiler/jvm/hlcgcpu.pas @@ -1527,7 +1527,7 @@ implementation eleref: treference; begin { only in case of initialisation, we have to set all elements to "empty" } - if name<>'FPC_INITIALIZE_ARRAY' then + if name<>'fpc_initialize_array' then exit; { put array on the stack } a_load_ref_stack(list,java_jlobject,ref,prepare_stack_for_ref(list,ref,false)); @@ -1583,7 +1583,7 @@ implementation not is_dynamic_array(t) then begin dummyloc.loc:=LOC_INVALID; - g_array_rtti_helper(list,tarraydef(t).elementdef,ref,dummyloc,'FPC_INITIALIZE_ARRAY') + g_array_rtti_helper(list,tarraydef(t).elementdef,ref,dummyloc,'fpc_initialize_array') end else if is_record(t) then begin @@ -2128,6 +2128,9 @@ implementation enum instance for 0 if it exists (if not, it remains nil since there is no valid enum value in it) } else if (vs.vardef.typ=enumdef) and + ((vs.typ<>fieldvarsym) or + (tdef(vs.owner.defowner).typ<>objectdef) or + (ts_jvm_enum_field_init in current_settings.targetswitches)) and get_enum_init_val_ref(vs.vardef,initref) then allocate_enum_with_base_ref(list,vs,initref,ref); end; |