Commit Graph

347 Commits

Author SHA1 Message Date
svenbarth
d98e551882 + add a generic variant of TValue.IsType
* extended test

git-svn-id: trunk@43591 -
2019-11-25 21:13:37 +00:00
pierre
a09e40945c Regenerate all Makefile's after commit #43472
git-svn-id: trunk@43478 -
2019-11-15 14:47:02 +00:00
svenbarth
9dcd897ce6 * fix for Mantis #36196: free a property's attributes when the property is destroyed
+ added test

git-svn-id: trunk@43299 -
2019-10-21 19:42:19 +00:00
marco
bacc9f6489 * initial version system.uitypes.
git-svn-id: trunk@43144 -
2019-10-06 17:23:38 +00:00
florian
48c5636fbc * make InvokeKernelRegister work for caller cleared stack/fixed stack and keep stack 16 byte aligned if needed
git-svn-id: trunk@43009 -
2019-09-15 17:17:29 +00:00
svenbarth
492f1ac4be * implement RawThunk for Aarch64
git-svn-id: trunk@42991 -
2019-09-13 20:38:31 +00:00
svenbarth
d6381a3477 * ensure that the RawThunkPlaceholder* constants are compared with using the correct type
git-svn-id: trunk@42990 -
2019-09-13 20:38:28 +00:00
svenbarth
63d83de063 * ccReg is the default calling convention on selected architectures (though I wonder why x86_64 returns ccReg as well when it does not support ccReg... :/ )
git-svn-id: trunk@42810 -
2019-08-24 23:08:42 +00:00
svenbarth
117fa8fa53 * Writeln is only needed for Debug
git-svn-id: trunk@42809 -
2019-08-24 23:08:39 +00:00
svenbarth
f740fc4228 * correct alignment of the procedure parameters
git-svn-id: trunk@42806 -
2019-08-24 23:08:30 +00:00
svenbarth
9bdef3b7c3 * correct alignment of the parameter type informations
git-svn-id: trunk@42805 -
2019-08-24 23:08:26 +00:00
svenbarth
62e7bb6254 * correct alignment for the result name/type
git-svn-id: trunk@42804 -
2019-08-24 23:08:23 +00:00
svenbarth
dad9260f93 + introduce AlignToPtr, a copy of the one from the TypInfo unit (we should really come up with a better name here considering that it's redirecting to AlignTypeData on m68k...)
git-svn-id: trunk@42803 -
2019-08-24 23:08:20 +00:00
svenbarth
3df9552444 * implement RawThunk for m68k (works for Coldfire, but I hope the real 68k will handle it as well)
git-svn-id: trunk@42801 -
2019-08-24 23:08:07 +00:00
michael
f52b14ff3e * Make order of ISO8601ToDate consistent, ReturnUTC always at the end, and default true
git-svn-id: trunk@42800 -
2019-08-24 11:05:19 +00:00
michael
2664a0a856 * Make order of args in TryISO8601ToDate delphi compatible
git-svn-id: trunk@42799 -
2019-08-24 11:01:15 +00:00
svenbarth
865f675a7a * fix TValue.FromOrdinal for big endian targets
git-svn-id: trunk@42780 -
2019-08-23 21:57:14 +00:00
svenbarth
33f6adfab6 * fix for Mantis #35982: free created attributes once the type is freed
+ added test

git-svn-id: trunk@42773 -
2019-08-23 14:59:13 +00:00
svenbarth
81870c00f6 - remove no longer required pointer types (they are part of the System unit now)
git-svn-id: trunk@42758 -
2019-08-21 20:25:40 +00:00
svenbarth
a8cf852b0f - remove an unused local variable
git-svn-id: trunk@42757 -
2019-08-21 20:25:37 +00:00
svenbarth
805a9fa448 - remove the no longer required code that used TMethodImplementation for the IInterface methods
git-svn-id: trunk@42756 -
2019-08-21 20:25:34 +00:00
svenbarth
7b4cf161aa * implement RawThunk for ARM
git-svn-id: trunk@42755 -
2019-08-21 20:25:31 +00:00
svenbarth
5978d9924f - remove unused local variable
git-svn-id: trunk@42754 -
2019-08-21 20:25:28 +00:00
pierre
5ed7bd35df Update all trunk/fpcsrc Makefile's after commit 42749
git-svn-id: trunk@42750 -
2019-08-20 15:58:10 +00:00
pierre
687554f4ec Fix compilation for i8086, AllocateRawThunk return type changed to CodePointer
git-svn-id: trunk@42740 -
2019-08-19 15:44:29 +00:00
pierre
7f6122884f Fix assembly instruction errors
git-svn-id: trunk@42738 -
2019-08-19 12:05:30 +00:00
svenbarth
652e1985a9 * implement thunking for x86_64 SysV ABI targets
git-svn-id: trunk@42734 -
2019-08-18 18:30:42 +00:00
svenbarth
58ada1f547 + add a test for RawThunk; this does not require a function call manager thus it's better to place it in the general RTTI testcase so that it's always tested
git-svn-id: trunk@42733 -
2019-08-18 18:30:39 +00:00
svenbarth
62a61bdb41 * fix ifdefs for non-fpc (Lazarus likes to mess these up during auto completion...)
git-svn-id: trunk@42732 -
2019-08-18 18:30:37 +00:00
svenbarth
048dc7b289 * implement RawThunk for x86_64-win64
git-svn-id: trunk@42731 -
2019-08-18 18:30:34 +00:00
svenbarth
9cac24a325 * fix compilation on targets that don't have a RawThunk defined yet
git-svn-id: trunk@42720 -
2019-08-17 15:36:01 +00:00
svenbarth
7d9b249def + add TRttiOrdinalType and TRttiInt64Type (what's left of the "ordinal like" ones is TRttiEnumerationType, TRttiSetType and a non-Delphi compatible TRttiBooleanType (due to FPC supporting multiple Boolean types))
git-svn-id: trunk@42719 -
2019-08-17 15:35:58 +00:00
svenbarth
92c6d166a8 * TRttiFloatType.GetFloatType() can be inline
git-svn-id: trunk@42718 -
2019-08-17 15:35:55 +00:00
svenbarth
8fdee2b3b1 * implement TRttiFloatType.GetTypeSize()
git-svn-id: trunk@42717 -
2019-08-17 15:35:52 +00:00
svenbarth
16f47fbee3 * explicitely ignore the TestIntfMethods test if TVirtualInterface is not supported
git-svn-id: trunk@42710 -
2019-08-16 15:43:09 +00:00
svenbarth
95b60bc6b2 * switch TVirtualInterface to using thunks for QueryInterface, _AddRef and _Release as otherwise _Release will execute code that's no longer valid (it's also a bit more performant ;) )
Note: this is currently i386 only, x86_64 needs to be switched as well and thus TVirtualInterface.Create will raise a ENotImplemented there

git-svn-id: trunk@42709 -
2019-08-16 15:43:07 +00:00
svenbarth
2c4d7b6316 * implement a infrastructure for method thunks (these first adjust Self and then jump to the specified address)
git-svn-id: trunk@42708 -
2019-08-16 15:43:04 +00:00
florian
23585ded15 * fix access to ParamFlags of the tkMethod branch of type data for CPUs requiring proper alignment
git-svn-id: trunk@42511 -
2019-07-28 11:55:19 +00:00
svenbarth
de15025a47 * streamline retrieval of attributes (both in TypInfo and RTTI units)
git-svn-id: trunk@42373 -
2019-07-12 22:06:02 +00:00
svenbarth
e060a43d70 * rename TAttributeData to the more appropriate TAttributeTable
git-svn-id: trunk@42371 -
2019-07-12 22:05:55 +00:00
svenbarth
d137e06ade * instead of embedding the attributes inside the class' and property's type data only store a reference to a table of attributes
git-svn-id: trunk@42365 -
2019-07-12 22:05:29 +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
michael
bf54543518 * Add SplitCommandLine
git-svn-id: trunk@42269 -
2019-06-22 13:37:47 +00:00
Jonas Maebe
c262c5dbc9 * synchronised with trunk till r42256
git-svn-id: branches/debug_eh@42257 -
2019-06-20 17:21:34 +00:00
svenbarth
746756cada * add typecast to PTypeInfo to be on the safe side
git-svn-id: trunk@42222 -
2019-06-13 21:08:48 +00:00
svenbarth
253f65c5b2 * fix for Mantis #35687: implement TValue.FromOrdinal()
+ added tests

git-svn-id: trunk@42221 -
2019-06-13 21:08:44 +00:00
svenbarth
34569080be * correctly handle both Ansi- and WideChar in TValue
+ added tests

git-svn-id: trunk@42220 -
2019-06-13 21:08:41 +00:00
svenbarth
a2a403e2e5 * fix for Mantis #35693: IsOrdinal also needs to return true for enums (with that AsOrdinal will work correctly as well)
* extended RTTI test by a test for enums

git-svn-id: trunk@42219 -
2019-06-13 21:08:38 +00:00
Jonas Maebe
faf75095cd * synchronised with trunk till r42189
git-svn-id: branches/debug_eh@42190 -
2019-06-07 18:24:38 +00:00
svenbarth
fb0f2fbd35 * enable method implementation tests for i386 (interface tests will be ignored however as stdcall/cdecl are not yet provided without an external manager)
git-svn-id: trunk@42185 -
2019-06-06 20:51:57 +00:00