mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 18:19:54 +02:00
* moved $methodpointer type construction from psystem to pdecobj for JVM,
because java_jlobject needs to be available git-svn-id: branches/jvmbackend@18553 -
This commit is contained in:
parent
58d7a86252
commit
aaff356c6d
@ -1217,6 +1217,8 @@ implementation
|
||||
old_current_structdef: tabstractrecorddef;
|
||||
old_current_genericdef,
|
||||
old_current_specializedef: tstoreddef;
|
||||
hrecst: trecordsymtable;
|
||||
fsym: tfieldvarsym;
|
||||
old_parse_generic: boolean;
|
||||
list: TFPObjectList;
|
||||
s: String;
|
||||
@ -1279,7 +1281,18 @@ implementation
|
||||
if (current_structdef.objname^='TOBJECT') then
|
||||
class_tobject:=current_objectdef;
|
||||
if (current_objectdef.objname^='JLOBJECT') then
|
||||
java_jlobject:=current_objectdef;
|
||||
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:=tfieldvarsym.create('$proc',vs_value,java_jlobject,[]);
|
||||
hrecst.insert(fsym);
|
||||
hrecst.addfield(fsym,vis_hidden);
|
||||
methodpointertype:=trecorddef.create('',hrecst);
|
||||
systemunit.insert(ttypesym.create('$methodpointer',methodpointertype));
|
||||
end;
|
||||
if (current_objectdef.objname^='JLTHROWABLE') then
|
||||
java_jlthrowable:=current_objectdef;
|
||||
if (current_objectdef.objname^='FPCBASERECORDTYPE') then
|
||||
|
@ -401,15 +401,6 @@ implementation
|
||||
addfield(hrecst,tfieldvarsym.create('$self',vs_value,voidpointertype,[]));
|
||||
methodpointertype:=trecorddef.create('',hrecst);
|
||||
addtype('$methodpointer',methodpointertype);
|
||||
end
|
||||
else
|
||||
begin
|
||||
{$if defined(jvm) and not defined(nounsupported)}
|
||||
hrecst:=trecordsymtable.create('',1);
|
||||
addfield(hrecst,tfieldvarsym.create('$proc',vs_value,voidpointertype,[]));
|
||||
methodpointertype:=trecorddef.create('',hrecst);
|
||||
addtype('$methodpointer',methodpointertype);
|
||||
{$endif}
|
||||
end;
|
||||
symtablestack.pop(systemunit);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user