mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-23 04:29:28 +02:00
The sources of the Free Pascal compiler, RTL, packages and utilities.
See https://www.freepascal.org/ for more info.
![]() o since the JVM does not support call-by-reference, setlength() works by taking an argument pointing to the old array and one to the new array (the latter is always created in advance on the caller side, even if not strictly required, because we cannot easily create it on the callee side in an efficient way). Then we copy parts of the old array to the new array as necessary o to represent creating a new dynamic array, the JVM target uses an in_new_x tinlinenode + tasnode support for the JVM. Special: it can also be used to convert java.lang.Object to dynamic arrays, and dynamic arrays of java.lang.Object to dynamic arrays with more dimensions (arrays are special JVM objects, and such support is required for the setlength support) + check whether explicit type conversions are valid, and if so, add the necessary conversion code since we cannot simply reinterpret bit patterns in most cases in the JVM: o in case of class and/or dynamic array types, convert to an as-node o in case of int-to-float or float-to-int, use java.lang.Float/Double helpers (+ added the definitions of these helpers to the system unit) git-svn-id: branches/jvmbackend@18378 - |
||
---|---|---|
compiler | ||
ide | ||
installer | ||
packages | ||
rtl | ||
tests | ||
utils | ||
.gitattributes | ||
.gitignore | ||
Makefile | ||
Makefile.fpc |