mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-02 16:39:36 +01:00
* 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:
parent
274c2fc82f
commit
5e1a895e95
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user