Commit Graph

48956 Commits

Author SHA1 Message Date
svenbarth
a173c34d96 * have tcgrttinode use the indirect RTTI labels if necessary
git-svn-id: trunk@34224 -
2016-07-29 14:03:31 +00:00
svenbarth
61551cbb0f * move properties and functions of TVMT to the end of the record, so that one only needs to adjust the total entry count TVMTBuilder.generate_vmt_def()
git-svn-id: trunk@34223 -
2016-07-29 13:54:36 +00:00
svenbarth
a2c0dae8a9 Merged revision(s) 32502 from branches/svenbarth/packages:
Use indirect reference for the RTL helpers that require RTTI symbols.

hlcgobj.pas, thlcgobj:
  * g_incrrefcount, g_initialize, g_finalize & g_array_rtti_helper: use the indirect symbol of the RTTI if the target supports packages

........

git-svn-id: trunk@34222 -
2016-07-29 13:52:19 +00:00
svenbarth
50865158a4 Fix for Mantis #30410.
* ncgrtti.pas, TRTTIWriter.ref_rtti: don't require the indirect symbol as an external assembler symbol, but the direct one

git-svn-id: trunk@34221 -
2016-07-29 13:49:42 +00:00
yury
e3ebaa6e6a * Remove trailing #13#10 in the result of SysErrorMessage() on Windows and minor optimization. It is Delphi compatible.
git-svn-id: trunk@34220 -
2016-07-29 10:23:12 +00:00
yury
980c4741ac * Fixed conversion from PWideChar to ansistring.
+ test. 

git-svn-id: trunk@34219 -
2016-07-29 09:43:05 +00:00
michael
d8266a708f * Patch from Mattias Gaertner to make exception object configurable, fix tests
git-svn-id: trunk@34218 -
2016-07-28 11:45:41 +00:00
michael
19bd74faa9 * Patch from Mattias Gaertner
- jstree: add some explanatory comments 
  - jswriter: 
    TJSWriter.WriteSourceElements write functions and vars, 
    fixed unneeded semicolon in TJSWriter.WriteFuncDef.

git-svn-id: trunk@34217 -
2016-07-28 11:17:03 +00:00
michael
08c79c41bd * Updates from Laco for version 1.0
git-svn-id: trunk@34216 -
2016-07-27 11:44:44 +00:00
michael
ef076798d0 * Patch from Mattias Gaertner to start new unit conversion format
git-svn-id: trunk@34215 -
2016-07-27 11:38:46 +00:00
michael
57ab472c72 * Patch from Mattias Gaertner to check implicit units when there is no uses list
git-svn-id: trunk@34214 -
2016-07-27 11:34:29 +00:00
michael
16ce35ea9b * Patch from Mattias Gaertner to make EscapeString a normal method + Fix casing
git-svn-id: trunk@34213 -
2016-07-27 11:32:27 +00:00
michael
1d6900e800 * Patch from Mattias Gaertner to fixed type casts AsString is a TJSString.
git-svn-id: trunk@34212 -
2016-07-27 11:30:13 +00:00
pierre
cc7d0d2f45 Try to implement BreakLine (Ctrl+N), bug report 28787
git-svn-id: trunk@34211 -
2016-07-26 22:14:27 +00:00
pierre
71782a85f3 Fix bug report 28822, source file test.test.pas gets pascal syntax highlighting
git-svn-id: trunk@34210 -
2016-07-26 21:50:18 +00:00
pierre
0af402fd1a Add stop on Signals
git-svn-id: trunk@34209 -
2016-07-26 21:17:37 +00:00
pierre
af8cf223ca Specify MI use in About Dialog
git-svn-id: trunk@34208 -
2016-07-26 21:17:01 +00:00
pierre
7b2c034065 Avoid flickering in Compilation messagebox
git-svn-id: trunk@34207 -
2016-07-26 21:01:19 +00:00
michael
d0ca79baf7 * Patch from Mattias Gaertner to clean up code: less hints, nicer stacktraces
git-svn-id: trunk@34206 -
2016-07-26 18:07:27 +00:00
michael
798b6d753a * Patch from Mattias Gaertner to check uses clause
git-svn-id: trunk@34205 -
2016-07-26 18:02:11 +00:00
michael
62f39e0037 * Some clean-up patches by Mattias
git-svn-id: trunk@34204 -
2016-07-26 15:05:39 +00:00
pierre
ef1369fef2 Reset static recorddef variables to nil in InitSymtable, avoid crashes in TextMode IDE
git-svn-id: trunk@34203 -
2016-07-26 12:52:40 +00:00
michael
92ab883002 * Some cleanup from Mattias
git-svn-id: trunk@34202 -
2016-07-25 18:56:37 +00:00
michael
cdc481f218 * Patch from Mattias Gaertner to Allow only one uses list
git-svn-id: trunk@34201 -
2016-07-25 18:52:28 +00:00
olivier
49132b57dd - remove sysheap.inc override from the Haiku port. mmap is now fully supported under Haiku for a long time. sbrk is also under work and the current implementation limit the available memory.
git-svn-id: trunk@34200 -
2016-07-24 18:47:33 +00:00
michael
d4a0fcecd9 * Removed unused variable
git-svn-id: trunk@34199 -
2016-07-24 07:39:22 +00:00
michael
827209f2de * Generic array parsing
git-svn-id: trunk@34198 -
2016-07-24 07:36:15 +00:00
pierre
b9e6938519 Correct behavior: if VMT becomes NIL, RTE 219 must be generated as this happens if EXPVMT is not an ancestor of starting VMT
git-svn-id: trunk@34197 -
2016-07-24 06:13:46 +00:00
michael
e1751df5c3 * Refactor so LoadFromStream can be overridden
git-svn-id: trunk@34196 -
2016-07-23 20:04:38 +00:00
michael
c715aa5188 * Call inherited destructor
git-svn-id: trunk@34195 -
2016-07-23 19:47:10 +00:00
svenbarth
59303c5113 Fix -CR after the recent VMT changes.
* tobjectvmt: parent needs to be ppointer for 3.1.1
* fpc_check_object_ext: correctly determine parent VMT

git-svn-id: trunk@34194 -
2016-07-23 16:42:15 +00:00
svenbarth
131a7bbc67 Fix cycling.
* correctly handle tcalo_data_force_indirect in finalize_vectorized_dead_strip_asmlist()
* correctly handle tcdssso_use_indirect in get_vectorized_dead_strip_section_symbol()

git-svn-id: trunk@34193 -
2016-07-23 16:34:26 +00:00
joost
05779cc64c * Do not add the --prefix parameter when calling fpmake for building archives
git-svn-id: trunk@34190 -
2016-07-22 22:14:26 +00:00
pierre
c3ac426131 Fix testppudump by adding missing TAsmsymtype and TAsmsymbind
git-svn-id: trunk@34189 -
2016-07-22 16:42:10 +00:00
svenbarth
02ebae7658 * use the indirect symbol for resource strings if necessary
* have the unit import the resource string symbol if necessary

git-svn-id: trunk@34188 -
2016-07-22 16:04:51 +00:00
svenbarth
cbbbe8927e * handle the export and import of resourcestring symbols for packages
git-svn-id: trunk@34187 -
2016-07-22 16:03:59 +00:00
svenbarth
ccb4b23949 * register the start and end symbols of resource strings in the extern assembler list of the program/library
* export the start and end symbols of resource strings from the package

git-svn-id: trunk@34186 -
2016-07-22 16:03:16 +00:00
svenbarth
947c876ba3 * use the indirect start and end symbols for the resource string table (affects both the compiler and the RTL)
git-svn-id: trunk@34185 -
2016-07-22 16:01:39 +00:00
svenbarth
90a1099c5e * generate indirect symbols for resource strings as well as the start and end symbols
* register the start and end symbol in the unit's public assembler symbol list

git-svn-id: trunk@34184 -
2016-07-22 15:59:35 +00:00
svenbarth
3147374178 Ensure uniqueness of internal errors
git-svn-id: trunk@34183 -
2016-07-22 15:56:54 +00:00
svenbarth
4df4449933 Extend the ttypedconstbuilder's dead_stripe_section handling (get_vectorized_dead_strip_section_symbol() and finalize_vectorized_dead_strip_asmlist()) with the ability to
- register a symbol in the unit's public or extern asm symbol list
 - add an indirect symbol when defining the symbol
 - use an indirect symbol instead of the direct one
This will be needed to correctly handle resourcestrings for packages

git-svn-id: trunk@34182 -
2016-07-22 15:55:14 +00:00
svenbarth
d9d2789375 * fix DynArrayDim() and DynArrayIndex() after the RTTI changes in r33944
git-svn-id: trunk@34180 -
2016-07-22 13:48:12 +00:00
svenbarth
022df814c2 * use the extern and public assembler symbol lists stored in the units to resolve those symbols to a used package that don't have a corresponding Pascal symbol
git-svn-id: trunk@34179 -
2016-07-22 13:42:13 +00:00
svenbarth
6cc7539208 * also export the mangled RTTI name from a package
git-svn-id: trunk@34178 -
2016-07-22 13:39:51 +00:00
svenbarth
971d05c898 * also import procdefs that are called through the VMT
git-svn-id: trunk@34177 -
2016-07-22 13:38:59 +00:00
svenbarth
f69b365b77 * declare various symbols as external assembler symbols: RTTI references, parent VMT, FPC_EMPTYMETHOD (all three only if it's used from a different unit), threadvar lists and symbols declared as "external"
git-svn-id: trunk@34176 -
2016-07-22 13:34:38 +00:00
svenbarth
bb72c1c4df * declare various assembler symbols (VMT, RTTI, threadvars) as public assembler symbols
* declare public function alias as public assembler symbols

git-svn-id: trunk@34175 -
2016-07-22 13:11:24 +00:00
svenbarth
5bb121e91c Add a mechanism to keep track of assembler symbols that either publicly provided by a unit or used by a unit and that are not really baked by a Pascal symbol (e.g. public function aliases, RTTI & VMT symbol).
This basically revives the globalasmsym entry of the PPU though it feeds to different lists, one for the public (exported) symbols and one for the external (imported) symbols. Also the list of symbols is much smaller as it would be if all symbols would be dumped in there.

git-svn-id: trunk@34174 -
2016-07-22 13:08:32 +00:00
svenbarth
f18e6cec0b * correctly enumerate the fields of the TVMT record after the previous extension of it (GetvParent and vParent are two new symbols and TVMT does not only contain fieldvarsyms now) so that the VMT def can be correctly generated
git-svn-id: trunk@34173 -
2016-07-22 13:07:37 +00:00
svenbarth
685f820622 * switch class'/object's parent reference in the VMT to an indirect reference
(this also requires the adjustment of a test)

git-svn-id: trunk@34172 -
2016-07-22 12:53:51 +00:00