maciej-izak
|
1d301b6dbe
More consequent writing of Rtti. Part of code related to recorddef moved from recorddef_rtti to write_child_data_rtti(). When typeinfo is used in code init Rtti is a child of the full Rtti. Commit also contains correction for code commited for mantis #31249 (r35376) and mantis #31305 (r35377) for objects. Before was impossible to compile code with usage of typeinfo() function for object without managed fields ("Undefined symbol" error).
|
8 years ago |
svenbarth
|
7e85e27865
* fix ncgrtti correctly (for once that warning was indeed useful :P )
|
8 years ago |
florian
|
4b63da81aa
* initialize para to avoid warning
|
8 years ago |
svenbarth
|
c1390b3442
* fix for Mantis #31249: applied (adjusted) patch provided by Maciej Izak
|
8 years ago |
svenbarth
|
f517311227
* ensure that the indirect symbols for VMT, RTTI and IID reside in the same sections as the symbols they point to -> reduces the amount of sections for them by half
|
8 years ago |
svenbarth
|
1d40e7e159
* correctly encapsulate the location records
|
8 years ago |
svenbarth
|
26135d605f
+ implement interface RTTI inspired by the changes from Steve Hildebrandt, yet not exactly the same. Like his implementation this one isn't Delphi compatible either.
|
8 years ago |
svenbarth
|
41dccb75b9
* for open array parameters the RTTI of the element def needs to be available/written; this is Delphi compatible
|
8 years ago |
svenbarth
|
d044969d88
* applied adjusted patch from Mantis #31250 by Maciej Izak
|
8 years ago |
svenbarth
|
5fa5ff1730
+ new method TRTTIWriter.methods_write_rtti() to ensure that the TypeInfo of parameters and result type of methods is written (can be restricted to certain visibilities and whether hidden parameters shall be checked as well)
|
8 years ago |
svenbarth
|
22e23fea8c
+ new parameter allow_hidden for params_write_rtti() so that writing of the TypeInfo of hidden parameters can be enforced as well
|
8 years ago |
svenbarth
|
cf18b7116e
* write_paralocs() takes a pcgpara instead of a tparavarsym as this is needed for the result location as well
|
8 years ago |
svenbarth
|
f905303c4a
+ new TParamFlag pfResult if the result is passed as a parameter and thus needs to be set up as well
|
8 years ago |
svenbarth
|
854a82b58b
* move write_param_flag() from local to class scope
|
8 years ago |
svenbarth
|
5275c36393
+ extend TParamFlags by values for hidden parameters in general and especially the hidden high, self and vmt parameters (this is necessary so a manager approach for Invoke() can be used with as few knowledge about the involved calling conventions as possible)
|
8 years ago |
svenbarth
|
6b641394d0
* fix for Mantis #31201: don't write any RTTI for undefined defs (and while we're at it abort if an error def is encountered)
|
8 years ago |
svenbarth
|
417f1cd49d
+ initial implementation of the RTTI for parameter locations (not *yet* used by anything)
|
8 years ago |
svenbarth
|
0ed00f64f5
* move writing of the calling convention into its own method
|
8 years ago |
svenbarth
|
e3f10500b0
* move writing of the methodkind into its own function (and return the value as its a bit more complicated to calculate than merely checking proctypeoption)
|
8 years ago |
florian
|
2e779239ad
* fix rtti for targets with a max. C record alignment > 8 bytes
|
8 years ago |
florian
|
0b82f71e8d
* take care of the fact that there are 32 bit abis (e.g. ARMHF) which align qword on 8 byte boundaries, resolves issue #31132
|
8 years ago |
svenbarth
|
7023a6f95b
* have the remaining 7 Boolean types also use tkBool as typekind instead of tkInteger
|
8 years ago |
svenbarth
|
dbbb6dca32
* correctly treat Boolean64 as otUQword and QWordBool as otSQWord (the former having QWord range 0..1, the latter Low(Int64)..High(Int64))
|
8 years ago |
svenbarth
|
26e7d005aa
* use Low(LongInt) and Max(LongInt) as min/max values for the RTTI of the ByteBool, WordBool and LongBool types to be Delphi compatible; the range of the defs is not changed to avoid the application of range checks
|
8 years ago |
Jonas Maebe
|
d8c4980b2e
* don't reuse the same type with the typed const builder for
|
8 years ago |
Jonas Maebe
|
691c2d655e
* put multiple statements of the else-part of case between begin..end
|
8 years ago |
Jonas Maebe
|
fe6b662c37
* fixed range error
|
8 years ago |
Jonas Maebe
|
bcb7fedb3c
* fixed indentation
|
8 years ago |
svenbarth
|
86207c9b55
- remove no longer valid {otNone} comment
|
8 years ago |
svenbarth
|
a9d14fe30b
* extend TOrdType by entries for 64-bit values
|
8 years ago |