Commit Graph

143 Commits

Author SHA1 Message Date
Michaël Van Canneyt
b3800d38cb * Handle potential double defintion of INFINITE 2024-02-24 19:52:00 +01:00
Michaël Van Canneyt
e1b2feac33 * Set monitor structures in place 2024-02-24 18:11:23 +01:00
Michaël Van Canneyt
30a20cc209 * Add operators to TMethod, for Delphi compatibility 2024-02-20 15:36:18 +01:00
Michaël Van Canneyt
4af99236b0 * Add TDispatchMessage 2024-02-13 19:57:05 +01:00
Sven/Sarah Barth
dd4f7e9148 * fix #40592: make the Delphi-compatible attributes usable, but in a way that makes it clear to the user that they won't work
+ added test
2024-01-15 22:29:47 +01:00
Michaël Van Canneyt
7e4aca384f * Some delphi compatibility issues solved (PtrToNil and TGUID operator) 2023-11-29 14:34:27 +01:00
Michaël Van Canneyt
6045b3a6bd * Add Delphi-compatible DisposeOf and friends. 2023-10-30 09:17:01 +01:00
Michael VAN CANNEYT
ed50a1941b * Unicode resource strings 2023-07-25 16:06:53 +02:00
Michael VAN CANNEYT
8ef4625e4d * UnicodeString<>WideString on windows 2023-07-24 15:38:09 +02:00
Michaël Van Canneyt
defc7e99d1 * Fix compilation for avr-embedded (no unicode strings) 2023-07-24 14:54:30 +02:00
Michaël Van Canneyt
ceddc2aec3 * TArray is now in system unit 2023-07-22 15:30:30 +02:00
Michaël Van Canneyt
757d2b4f91 * Move TMarshal to system unit 2023-07-22 15:24:27 +02:00
Rika Ichinose
7f4420495b TMarshal & TMarshaller, strange things from Delphi. 2023-07-22 15:24:27 +02:00
Michael VAN CANNEYT
b69c78ccce * String -> ShortString/RTLString 2023-07-14 17:26:11 +02:00
Michael VAN CANNEYT
d2d3fe6bc3 * Char -> AnsiChar 2023-07-14 17:26:10 +02:00
Michaël Van Canneyt
517d1b017c * Interface thunk class must query owner object interface list 2023-07-11 17:47:03 +02:00
Michaël Van Canneyt
70282826ad * Parent class for hidden TVirtualInterface thunking class 2023-07-11 08:36:57 +00:00
Michaël Van Canneyt
b121045d4a * TPtrWrapper for Delphi compatibility 2023-07-09 15:05:53 +02:00
Michaël Van Canneyt
b8738944ed * Add TNoRefCountObject (delphi compatibility) 2023-06-05 11:43:07 +02:00
florian
c0979bbc0c * TObject.InitInstance got very big so inlining has no advantage anymore, resolves #39494 2021-12-25 19:09:22 +01:00
michael
82346563c1 * Add StoredAttribute class, bug ID #37602
git-svn-id: trunk@46506 -
2020-08-20 12:06:14 +00:00
michael
8bc2326b77 * Fix bug #37601: add some attribte definitions
git-svn-id: trunk@46505 -
2020-08-20 11:53:43 +00:00
florian
931d4dcfee * ensure the rtl and the packages for embedded compile with features exceptions and classes disabled
git-svn-id: trunk@43931 -
2020-01-13 21:20:03 +00:00
ondrej
9a9cd15ec4 TInterfacedObject.Destroy: fix case for correct auto-completion
git-svn-id: trunk@43418 -
2019-11-08 21:29:26 +00:00
svenbarth
e97a2cb03e * tests with Delphi showed that an attribute class must explicitely declare a parameterless constructor if it should be used, cause TCustomAttribute.Create is private
Note: this also means that TCustomAttribute itself can not be used as an attribute
* adjusted existing tests
+ added test

git-svn-id: trunk@42471 -
2019-07-20 20:03:38 +00:00
svenbarth
b2932393df Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 1/3]
Implemented attributes for class types and properties (based on work by Joost van der Sluis). Added TCustomAttribute - a base class for attributes. Added TUnitInfo record to RTTI. It contains the unit name and unit options (for now only a flag which specifies if the unit contains attributes). Added several tests for attributes.

git-svn-id: trunk@42356 -
2019-07-12 22:04:48 +00:00
florian
3b77146e1c * adapt FPC_Unwind_Exception for native eh_frame support
git-svn-id: branches/debug_eh@41307 -
2019-02-11 20:30:21 +00:00
Jonas Maebe
ef1757a5a7 + ARM EABI exception handling support for PSABIEH
git-svn-id: branches/debug_eh@41213 -
2019-02-03 21:10:04 +00:00
Jonas Maebe
3cfad8fba8 * renamed FPC_USE_PSEABIEH to FPC_USE_PSABIEH
git-svn-id: branches/debug_eh@40400 -
2018-11-29 21:30:42 +00:00
Jonas Maebe
b2d1ab7f05 * basic helpers for DWARF/PSABI EH-based exception handling (based on
GCC 4.2.1's libstdc++/libsupc++)
   - compile RTL with -dFPC_USE_PSEABIEH to include
   - the x86-64 compiler currently crashes if it has been compiled with
     optimizations (the eh_return_data_regno function from cpubase
     probably triggers mantis #34385)

git-svn-id: branches/debug_eh@40071 -
2018-10-28 18:16:42 +00:00
florian
0725bfcdf0 * do not generate references to the variant type, if the variants feature is not available
git-svn-id: trunk@37660 -
2017-12-02 17:16:32 +00:00
michael
3787d52dee * Fix bug ID #32353, reset ref count fields in destructor
git-svn-id: trunk@37112 -
2017-09-02 15:07:23 +00:00
michael
9878dc280b * Fix bug ID #32168
git-svn-id: trunk@36757 -
2017-07-21 16:08:01 +00:00
marco
a2d397c064 * pmethod declaration, patch from mantis #31576 by Silvio
git-svn-id: trunk@35632 -
2017-03-20 21:19:20 +00:00
florian
091b31fc76 * fix avr compilation after r34975 by more tests against feature defines, resolves #31036
git-svn-id: trunk@35015 -
2016-11-29 20:37:58 +00:00
florian
bcb7061314 * made TObject usable, even if no ansistring support is available
git-svn-id: trunk@34974 -
2016-11-26 19:33:31 +00:00
michael
784da563ef * Patch from Silvio Clecio to implement QualifiedClassName (bug ID 30985)
git-svn-id: trunk@34966 -
2016-11-26 13:53:27 +00:00
nickysn
7d15b688e8 * TInterfaceEntry changed to a variant record, that overlays a CodePointer on
top of the IOffset: SizeUInt field, because it is sometimes used as a
  CodePointer (for etStaticMethodResult and etStaticMethodClass) and sometimes
  as a SizeInt and these two types can be of different size in certain i8086
  memory models

git-svn-id: trunk@34645 -
2016-10-07 20:18:02 +00:00
nickysn
019f904be8 - removed the FPC 2.6.x compatibility ifdefs from tinterfaceentry
git-svn-id: trunk@34637 -
2016-10-06 21:10:40 +00:00
svenbarth
fb6546972b * IID and IIDStr references of the VMT's interface table need to be indirect
git-svn-id: trunk@34338 -
2016-08-19 13:06:26 +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
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
Jonas Maebe
f22c7cc3fc - removed "packed" and dummy field (that was required because of
the "packed" keyword) from the TResourceStringRecord record

git-svn-id: trunk@32393 -
2015-11-21 12:36:03 +00:00
Jonas Maebe
0c904e92ff * moved TResourceStringRecord from the objpas to the system unit so it can be
used in the compiler when emitting resourcestrings

git-svn-id: trunk@32208 -
2015-10-30 20:45:19 +00:00
Jonas Maebe
67b8aceaee * synchronized with privatetrunk till r30095
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
Jonas Maebe
87e55caabc * declare tvarrec.vpchar explicitly as pansichar for documentation purposes
(mantis #26842)

git-svn-id: trunk@28823 -
2014-10-15 15:37:23 +00:00
Jonas Maebe
427b05e97c * converted TVMTWriter.intf_write_table() to the high level typed constant
builder
   o removed variant record part in the RTL to force a specific size/alignment,
     since we now import the record into the compiler and hence it will always
     be handled correctly

git-svn-id: branches/hlcgllvm@28777 -
2014-10-06 20:54:23 +00:00
florian
03c553606e - unneeded spaces removed
git-svn-id: trunk@28740 -
2014-10-04 13:45:17 +00:00
nickysn
4f4e00e758 + i8086 far data memory model fixes in tinterfaceentry and tinterfacetable
git-svn-id: trunk@27724 -
2014-05-03 14:38:00 +00:00
nickysn
e1716c097d * set the vmtParent constant according to sizeof(SizeInt) instead of
SizeOf(ptruint), because the +size and -size fields are of type SizeInt and
  not ptruint or pointer.

git-svn-id: trunk@27540 -
2014-04-11 23:10:04 +00:00