Commit History

Autor SHA1 Mensaxe Data
  svenbarth a64a8f8deb - remove code to create an attribute using a synthetic function %!s(int64=6) %!d(string=hai) anos
  svenbarth 402728239f * trtti_attribute_list.bind already checks whether the dangling attribute list is assigned or not %!s(int64=6) %!d(string=hai) anos
  svenbarth ced3885dbb * generate construction function for the attributes used in a unit using a more straight forward approach %!s(int64=6) %!d(string=hai) anos
  svenbarth 0b63e89ba2 * make the reference to the TCustomAttribute type global %!s(int64=6) %!d(string=hai) anos
  svenbarth d9d2515ada * move binding of a dangling attribute list to a sym's/def's attribute list to a class procedure of trtti_attribute_list %!s(int64=6) %!d(string=hai) anos
  svenbarth 5cea374255 * add a remark that's going to be important once extended RTTI is supported (Delphi programs crash if an attribute's constructor is used that does not have any extended RTTI) %!s(int64=6) %!d(string=hai) anos
  svenbarth 71fa4d1fe2 * the RTTI of an attribute not only consists of the creation function, but also of the attribute's type, a pointer to the constructor and a data blob containing the constant parameters %!s(int64=6) %!d(string=hai) anos
  svenbarth 55d5bdc98d + add methods for the const nodes to directly emit their constant data to a constant builder %!s(int64=6) %!d(string=hai) anos
  svenbarth f9cda608fa * take a copy of the constructor assignment node (and free it together with the attribute) %!s(int64=6) %!d(string=hai) anos
  svenbarth d31dd4ac7b * better check for a valid call node %!s(int64=6) %!d(string=hai) anos
  svenbarth 8cd1f1973b - remove unneeded local variable %!s(int64=6) %!d(string=hai) anos
  svenbarth affa9f9d9c * to be on the safe side: don't include AttributeTable fields when cycling %!s(int64=6) %!d(string=hai) anos
  svenbarth 99914b4279 * instead of collecting the raw parameters we need to collect the parameters as passed to the call as there might be type conversions involved %!s(int64=6) %!d(string=hai) anos
  svenbarth b5e6c0b98d * ensure that any potentially created constructor call is freed if the attribute is not bound to a def or sym %!s(int64=6) %!d(string=hai) anos
  svenbarth 0e04d9b4de * store the parameter nodes in the attribute object as well (we need to write them to the RTTI as well as store them in the PPU) %!s(int64=6) %!d(string=hai) anos
  svenbarth 3a20178d96 * fix code formatting (no code changes) %!s(int64=6) %!d(string=hai) anos
  svenbarth c214648224 + add a test for overloaded attribute constructors %!s(int64=6) %!d(string=hai) anos
  svenbarth db37146f12 * rework code for parsing attributes to only allow constant expressions; Delphi only allows those as well and better we don't open *that* pandora's box just yet %!s(int64=6) %!d(string=hai) anos
  svenbarth ab2fa724ec * fix code formatting (no code changes) %!s(int64=6) %!d(string=hai) anos
  svenbarth 62c137a6d8 * check that we indeed have a type node and nothing else %!s(int64=6) %!d(string=hai) anos
  svenbarth f1715ff337 * fix code formatting (no code changes) %!s(int64=6) %!d(string=hai) anos
  svenbarth 3ad24c9db8 * as attributes can be part of any type they are best suited in a common part of TTypeData %!s(int64=6) %!d(string=hai) anos
  svenbarth a1b556d211 * considering that at least in theory every symbol and every def can carry RTTI attributes (Delphi only supports property and field symbols), move the rtti_attribute_list to tstoredsym/tstoreddef %!s(int64=6) %!d(string=hai) anos
  svenbarth de15025a47 * streamline retrieval of attributes (both in TypInfo and RTTI units) %!s(int64=6) %!d(string=hai) anos
  svenbarth 5532ac3355 * fix test %!s(int64=6) %!d(string=hai) anos
  svenbarth e060a43d70 * rename TAttributeData to the more appropriate TAttributeTable %!s(int64=6) %!d(string=hai) anos
  svenbarth c17dafc2f9 * fix TClassData by including the AttributeTable at the right location %!s(int64=6) %!d(string=hai) anos
  svenbarth e296b26e9e - remove unit info and related code again as that will be handled similar, but differently with dynamic packages %!s(int64=6) %!d(string=hai) anos
  svenbarth ee940c8270 * always write a class' reference to the attribute table, even if the unit does not have attributes %!s(int64=6) %!d(string=hai) anos
  svenbarth 788d976f3a * use a Word instead of a Byte for the attribute index (after all the compiler writes a Word to the count field) %!s(int64=6) %!d(string=hai) anos