mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-26 08:40:34 +01:00
o every porocedural variable type is represented by a class with one
public "invoke" method whose signature matches the signature of the
procvar
o internally, dispatching happens via java.lang.reflect.Method.invoke().
WARNING: while this allows calling private/protected or other methods
that are normally not accessible from another context, a security
manger can override this. If such a security manager is installed,
most procvars will cause security exceptions
o such dispatching also requires that all arguments are wrapped, but
that's done in the compiler-generated body of the invoke method,
so that procvars can also be called conveniently from Java code
o typecasting between a procedure of object and tmethod is supported,
as well as Delphi-style replacing of only the method pointer via
@procvar1=@procvar2.
o nested procvars are not yet supported, but most of the basic
infrastructure for them is already present
* all units/programs now get an internal __FPC_JVM_Module_Class_Alias$
type when compiled for the JVM target, which is an "external" class
that maps to the unit name. This is required to look up the
JLRMethod instances for regular functions/procedures
+ new tabstractprocdef.copyas() method that allows to create a procvar
from a procdef and vice versa
git-svn-id: branches/jvmbackend@18690 -
|
||
|---|---|---|
| .. | ||
| astringh.inc | ||
| astrings.inc | ||
| compproc.inc | ||
| java_sys.inc | ||
| java_sysh.inc | ||
| jdk15.inc | ||
| jdk15.pas | ||
| jdynarrh.inc | ||
| jint64.inc | ||
| jmathh.inc | ||
| jpvar.inc | ||
| jpvarh.inc | ||
| jrec.inc | ||
| jrech.inc | ||
| jset.inc | ||
| jseth.inc | ||
| Makefile | ||
| Makefile.fpc | ||
| objpas.pp | ||
| rtl.cfg | ||
| rtti.inc | ||
| sstringh.inc | ||
| sstrings.inc | ||
| system.pp | ||
| ustringh.inc | ||
| ustrings.inc | ||