* removed JVM-specific creation of methodpointertype and

nestedprocpointertype; this was done initially before the JVM target knew
    about the voidpointertype, but is no longer necessary (also fixes
    mantis #26251)

git-svn-id: trunk@27838 -
This commit is contained in:
Jonas Maebe 2014-06-01 14:13:36 +00:00
parent 274c2fc82f
commit 5e1a895e95
2 changed files with 13 additions and 27 deletions

View File

@ -1363,21 +1363,7 @@ implementation
if (current_structdef.objname^='TOBJECT') then
class_tobject:=current_objectdef
else if (current_objectdef.objname^='JLOBJECT') then
begin
java_jlobject:=current_objectdef;
{ the methodpointer type is normally created in
psystem, but java_jlobject is not yet available
there... }
hrecst:=trecordsymtable.create('',1);
fsym:=cfieldvarsym.create('$proc',vs_value,java_jlobject,[]);
hrecst.insert(fsym);
hrecst.addfield(fsym,vis_hidden);
fsym:=cfieldvarsym.create('$data',vs_value,java_jlobject,[]);
hrecst.insert(fsym);
hrecst.addfield(fsym,vis_hidden);
methodpointertype:=crecorddef.create('',hrecst);
systemunit.insert(ctypesym.create('$methodpointer',methodpointertype));
end
java_jlobject:=current_objectdef;
else if (current_objectdef.objname^='JLTHROWABLE') then
java_jlthrowable:=current_objectdef
else if (current_objectdef.objname^='FPCBASERECORDTYPE') then

View File

@ -490,19 +490,19 @@ implementation
vmtarraytype:=carraydef.create(0,1,s32inttype);
tarraydef(vmtarraytype).elementdef:=pvmttype;
addtype('$vtblarray',vmtarraytype);
{ Add a type for methodpointers }
hrecst:=trecordsymtable.create('',1);
addfield(hrecst,cfieldvarsym.create('$proc',vs_value,voidcodepointertype,[]));
addfield(hrecst,cfieldvarsym.create('$self',vs_value,voidpointertype,[]));
methodpointertype:=crecorddef.create('',hrecst);
addtype('$methodpointer',methodpointertype);
{ Add a type for nested proc pointers }
hrecst:=trecordsymtable.create('',1);
addfield(hrecst,cfieldvarsym.create('$proc',vs_value,voidcodepointertype,[]));
addfield(hrecst,cfieldvarsym.create('$parentfp',vs_value,parentfpvoidpointertype,[]));
nestedprocpointertype:=crecorddef.create('',hrecst);
addtype('$nestedprocpointer',nestedprocpointertype);
end;
{ Add a type for methodpointers }
hrecst:=trecordsymtable.create('',1);
addfield(hrecst,cfieldvarsym.create('$proc',vs_value,voidcodepointertype,[]));
addfield(hrecst,cfieldvarsym.create('$self',vs_value,voidpointertype,[]));
methodpointertype:=crecorddef.create('',hrecst);
addtype('$methodpointer',methodpointertype);
{ Add a type for nested proc pointers }
hrecst:=trecordsymtable.create('',1);
addfield(hrecst,cfieldvarsym.create('$proc',vs_value,voidcodepointertype,[]));
addfield(hrecst,cfieldvarsym.create('$parentfp',vs_value,parentfpvoidpointertype,[]));
nestedprocpointertype:=crecorddef.create('',hrecst);
addtype('$nestedprocpointer',nestedprocpointertype);
symtablestack.pop(systemunit);
end;