Commit History

Author SHA1 Message Date
  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