mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-01-01 02:40:32 +01:00
Previously we had the following approach: - classes that implemented interfaces had an interface table - classes that didn't implement an interface, but inherited from a class that did had a Nil entry - classes that didn't implement any interface (including their parents) had a reference to FPC_EMPTYINTF (this was to optimize lookups) Now the approach is as follows: - classes that implement an interface or have a parent that implements an interface have an interface table; if the class itself doesn't implement an interface then the count will be 0 - classes that don't implement an interface at all (neither them nor their parents) have a Nil interface table This way FPC_EMPTYINTF can be removed without sacrificing at least the optimization for classes without any interface. For classes that have parents with interfaces there will be a small speed penalty due to an additional lookup for the counter. git-svn-id: trunk@34087 - |
||
|---|---|---|
| .. | ||
| aliases.inc | ||
| astrings.inc | ||
| blockrtl.pp | ||
| cgeneric.inc | ||
| cgenmath.inc | ||
| cgenstr.inc | ||
| charset.pp | ||
| cmem.pp | ||
| compproc.inc | ||
| ctypes.pp | ||
| currh.inc | ||
| dos.inc | ||
| dosh.inc | ||
| dynarr.inc | ||
| dynarrh.inc | ||
| dynlib.inc | ||
| dynlibh.inc | ||
| dynlibs.pas | ||
| except.inc | ||
| excepth.inc | ||
| exeinfo.pp | ||
| extpas.pp | ||
| extres.inc | ||
| fexpand.inc | ||
| file.inc | ||
| filerec.inc | ||
| flt_conv.inc | ||
| flt_core.inc | ||
| flt_pack.inc | ||
| fpextres.pp | ||
| fpintres.pp | ||
| gencurr.inc | ||
| generic.inc | ||
| genmath.inc | ||
| genset.inc | ||
| genstr.inc | ||
| genstrs.inc | ||
| getopts.pp | ||
| heap.inc | ||
| heaph.inc | ||
| heaptrc.pp | ||
| innr.inc | ||
| int64.inc | ||
| intres.inc | ||
| iso7185.pp | ||
| lineinfo.pp | ||
| llvmintr.inc | ||
| lnfodwrf.pp | ||
| lstrings.pp | ||
| macpas.pp | ||
| makefile.inc | ||
| mathh.inc | ||
| objc1.inc | ||
| objc.pp | ||
| objcbase.pp | ||
| objcnf.inc | ||
| objpas.inc | ||
| objpash.inc | ||
| pagemem.pp | ||
| readme | ||
| real2str.inc | ||
| resh.inc | ||
| rtti.inc | ||
| rttih.inc | ||
| sfpu128.pp | ||
| sfpux80.pp | ||
| softfpu.pp | ||
| sstrings.inc | ||
| strings.pp | ||
| stringsi.inc | ||
| sysres.inc | ||
| system.fpd | ||
| system.inc | ||
| systemh.inc | ||
| text.inc | ||
| textrec.inc | ||
| thread.inc | ||
| threadh.inc | ||
| threadvr.inc | ||
| tinyheap.inc | ||
| tnyheaph.inc | ||
| typefile.inc | ||
| typshrd.inc | ||
| typshrdh.inc | ||
| ufloat128.pp | ||
| ustringh.inc | ||
| ustrings.inc | ||
| uuchar.pp | ||
| varerror.inc | ||
| variant.inc | ||
| varianth.inc | ||
| wstringh.inc | ||
| wstrings.inc | ||
This directory contains only RTL parts independent
of the processor and of the operating system.
The include files contain the following:
astrings.pp AnsiStrings implementation.
except.inc Delphi styled exception support.
file.inc Untyped file support routines.
filerec.inc Untyped file record definition.
heap.inc Runtime heap manager .
heaph.inc Declarations of Heap functions.
innr.inc Internal function delcarations.
int64.inc Support for 64-bit integer arithmetic.
lstrings.pp LongStrings routine implementation.
mathh.inc Declarations of mathematical functions.
real2str.inc Routine to convert floating point numbers to strings.
rtti.inc Delphi like runtime type information
sstrings.inc ShortStrings (TP/BP pascal like strings) implementation.
system.inc OS and Processor independent implementation part of system unit.
systemh.inc Interface part of the system unit.
text.inc Text file support routines.
textrec.inc Definition of Textrec record.
typefile.inc Text file record definition.
generic.inc Processor independant implementation of assembler procs on i386
(to allow easy porting to new processors).
genset.inc Processor independant implementation of set handling
genmath.inc Processor independant implementation of mathematical routines
genrrti.inc Processor independant implementation of runtime type information routines
The unit files are:
ucomplex.pp Complex functions using operator overloading
getopts.pp Pascal implementation of the GNU Getops
objects.pp Turbo Pascal like implementation of objects unit
heaptrc.pp Runtime memory leak tracer and tests for memory integrity.