sergei
ae81e0889b
* Updated internal declarations of RTTI structures to match their counterparts in typinfo unit and actual data generated by compiler. It went unnoticed this far because fields whose location differ with and without 'packed' record attribute are not used by internal routines, and tests use declarations from typinfo unit (the declarations in question are not in interface, so tests cannot be done against them).
...
This eliminates a lot of unaligned code on SPARC and ARM.
git-svn-id: trunk@26845 -
2014-02-22 19:26:25 +00:00
paul
72fd58d62e
rtl: fix possible division by zero
...
git-svn-id: trunk@24472 -
2013-05-08 06:00:44 +00:00
paul
fe04dedbab
compiler: change RTTI size of record field offset from fixed 32bit to platform dependent integer (sizeint) since it is stored this way in the compiler. This is also Delphi compatible, rtl: adopt rtl appropriately
...
git-svn-id: trunk@24460 -
2013-05-07 11:25:41 +00:00
paul
dce960c97b
compiler: write Delphi compatible tkArray RTTI:
...
- TotalSize of all array dimensions instead of first dimension size
- Element type of last array dimension
- dimension information
rtl:
- adopt array initialization/finalization/copy for the new tkArray RTTI
- add Delphi compatible TArrayTypeData member for typinfo.TTypeData structure
tests:
- add a test which checks RTTI information for 2 dimension array
git-svn-id: trunk@24458 -
2013-05-07 09:12:18 +00:00
paul
d18f273f67
compier, rtl: revert 24424 since it fails on some platforms
...
git-svn-id: trunk@24425 -
2013-05-04 16:16:30 +00:00
paul
e23534eec4
compiler, rtl: some rtti related changes:
...
- write pint instead of 32 bit for record field offset (compiler uses aintsize = pint in TRecordDef), use PtrInt in RTL for record reading
- add tkRecord to TTypeData (field and type names are taken from Delphi help)
- add tkProcedure as alias to tkProcVar
git-svn-id: trunk@24424 -
2013-05-04 16:05:04 +00:00
sergei
27c626245b
* Reuse RecordRTTI to finalize class instances. This is possible because RTTI for classes is the same as for records (except different value of tkKind field), and RecordRTTI ignores tkKind (assuming that required checks are done by its caller).
...
git-svn-id: trunk@23213 -
2012-12-23 12:10:11 +00:00
sergei
f136e44b6b
- RTL: cleaned up remaining 'decr_ref' routines (not removed completely due to bootstrapping needs, but aliased to 'finalize' ones).
...
git-svn-id: trunk@20130 -
2012-01-20 19:19:08 +00:00
sergei
568ef396fb
* Added fpc_dynarray_assign (a helper for dynamic array assignments), added local access to fpc_intf_assign, and switched fpc_copy to use assignment helpers instead of incr_ref/decr_ref combinations.
...
git-svn-id: trunk@20114 -
2012-01-19 17:43:37 +00:00
sergei
0d3fa2d2db
- Cleaned out VER2_2 defines
...
git-svn-id: trunk@19479 -
2011-10-13 10:19:13 +00:00
sergei
c2ea372682
* Declared types describing RTTI data of arrays and records, and rewrote main RTTI routines using these types. Shorter by about 60 lines, functionality isn't changed.
...
git-svn-id: trunk@17141 -
2011-03-16 18:53:53 +00:00
sergei
1fcd40ee64
Continue fixing open array handling:
...
* Unified fpc_initialize_array,fpc_finalize_array with fpc_decref_array and fpc_addref_array by removing 'size' parameter from the former two. Element size is easily calculated from RTTI, so omitting it simplifies code generation. All four helpers are now callable by tcg.g_array_rtti_helper().
* ncgutil.pas: initialization of open array out-parameters is now done properly (using fpc_initialize_array).
+ Test
git-svn-id: trunk@17081 -
2011-03-05 18:45:44 +00:00
sergei
54bc8efa0b
* Fixed reference counting of open array parameters passed by value. RTTI of the array itself is useless in this case, as it does not provide correct element count. Now using dedicated helpers which take RTTI of array element and the element count. Resolves #18859 .
...
git-svn-id: trunk@17068 -
2011-03-03 18:38:46 +00:00
Jonas Maebe
749991ec02
+ support extra parameter for initialize() that indicates how many elements
...
should be initialised, similar to how this was already allowed for
finalize() (mantis #17998 )
git-svn-id: trunk@16407 -
2010-11-23 15:14:40 +00:00
florian
e01e4e5719
* optimized copy(<dyn. array> ...) by checking if the elements are really ref. counted
...
git-svn-id: trunk@15228 -
2010-05-05 13:49:06 +00:00
marco
4104d9f481
* More pluggability of the RTL. Mantis 15124
...
git-svn-id: trunk@14212 -
2009-11-18 21:16:12 +00:00
yury
e82e4ae806
* Fixed WideString on wince. WideString=UnicodeString on wince. Bug #14304 .
...
git-svn-id: trunk@13510 -
2009-08-10 11:32:08 +00:00
Jonas Maebe
f9b4d58e98
* set finalized dynarrays to nil (mantis #12048 )
...
git-svn-id: trunk@11773 -
2008-09-13 20:01:47 +00:00
florian
b178b08ba7
Merged revisions 11665-11738 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/unicodestring
........
r11665 | florian | 2008-08-30 13:30:17 +0200 (Sat, 30 Aug 2008) | 1 line
* continued to work on unicodestring type support
........
r11666 | florian | 2008-08-30 19:02:26 +0200 (Sat, 30 Aug 2008) | 2 lines
* expectloc for wide/ansi/unicode strings is LOC_CONSTANT or LOC_REGISTER now
........
r11667 | florian | 2008-08-30 20:42:37 +0200 (Sat, 30 Aug 2008) | 1 line
* more unicodestring stuff fixed, test results on win32 are already good
........
r11670 | florian | 2008-08-30 23:21:48 +0200 (Sat, 30 Aug 2008) | 2 lines
* first fixes for unix bootstrapping
........
r11683 | ivost | 2008-09-01 12:46:39 +0200 (Mon, 01 Sep 2008) | 2 lines
* fixed 64bit bug in iconvenc.pas
........
r11689 | florian | 2008-09-01 23:12:34 +0200 (Mon, 01 Sep 2008) | 1 line
* fixed several errors when building on unix
........
r11694 | florian | 2008-09-03 20:32:43 +0200 (Wed, 03 Sep 2008) | 1 line
* fixed unix compilation
........
r11695 | florian | 2008-09-03 21:01:04 +0200 (Wed, 03 Sep 2008) | 1 line
* bootstrapping fix
........
r11696 | florian | 2008-09-03 21:07:18 +0200 (Wed, 03 Sep 2008) | 1 line
* more bootstrapping fixed
........
r11698 | florian | 2008-09-03 22:47:54 +0200 (Wed, 03 Sep 2008) | 1 line
+ two missing compiler procs exported
........
r11701 | florian | 2008-09-04 16:42:34 +0200 (Thu, 04 Sep 2008) | 2 lines
+ lazarus project for the linux rtl
........
r11702 | florian | 2008-09-04 16:43:27 +0200 (Thu, 04 Sep 2008) | 2 lines
+ set unicode string procedures
........
r11707 | florian | 2008-09-04 23:23:02 +0200 (Thu, 04 Sep 2008) | 2 lines
* fixed several type casting stuff
........
r11712 | florian | 2008-09-05 22:46:03 +0200 (Fri, 05 Sep 2008) | 1 line
* fixed unicodestring compilation on windows after recent unix changes
........
r11713 | florian | 2008-09-05 23:35:12 +0200 (Fri, 05 Sep 2008) | 1 line
+ UnicodeString support for Variants
........
r11715 | florian | 2008-09-06 20:59:54 +0200 (Sat, 06 Sep 2008) | 1 line
* patch by Martin Schreiber for UnicodeString streaming
........
r11716 | florian | 2008-09-06 22:22:55 +0200 (Sat, 06 Sep 2008) | 2 lines
* fixed test
........
r11717 | florian | 2008-09-07 10:25:51 +0200 (Sun, 07 Sep 2008) | 1 line
* fixed typo when converting tunicodestring to punicodechar
........
r11718 | florian | 2008-09-07 11:29:52 +0200 (Sun, 07 Sep 2008) | 3 lines
* fixed writing of UnicodeString properties
* moved some helper routines to unicode headers
........
r11734 | florian | 2008-09-09 22:38:55 +0200 (Tue, 09 Sep 2008) | 1 line
* fixed bootstrapping
........
r11735 | florian | 2008-09-10 11:25:28 +0200 (Wed, 10 Sep 2008) | 2 lines
* first fixes for persisten unicodestrings
........
r11736 | florian | 2008-09-10 14:31:00 +0200 (Wed, 10 Sep 2008) | 3 lines
Initialized merge tracking via "svnmerge" with revisions "1-11663" from
http://svn.freepascal.org/svn/fpc/trunk
........
r11737 | florian | 2008-09-10 21:06:57 +0200 (Wed, 10 Sep 2008) | 3 lines
* fixed unicodestring <-> variant handling
* fixed unicodestring property reading
........
git-svn-id: trunk@11739 -
2008-09-10 20:14:31 +00:00
florian
f56b741948
* quicker finalization of dyn. arrays, thanks to the hint of Volker Zipfel
...
git-svn-id: trunk@11357 -
2008-07-10 16:44:45 +00:00
Jonas Maebe
dc71827e2e
* procedure version of fpc_copy to avoid errors with {$x-} (mantis #9918 )
...
git-svn-id: trunk@8790 -
2007-10-14 10:55:40 +00:00
florian
657ef819e0
* comment fixed
...
git-svn-id: trunk@7779 -
2007-06-23 09:16:21 +00:00
Jonas Maebe
d9284963b3
* fix for fpc_copy on 64 bit systems from Florian
...
git-svn-id: trunk@7713 -
2007-06-17 15:07:52 +00:00
florian
ea97b8b137
* fixed copying of remaining elements
...
git-svn-id: trunk@7699 -
2007-06-17 09:47:05 +00:00
florian
2c4aeefbf4
* fixed copying of automated records
...
git-svn-id: trunk@7696 -
2007-06-16 21:44:55 +00:00
florian
37bd49692e
* proper fix for 8481 et. al.
...
git-svn-id: trunk@7691 -
2007-06-16 19:03:53 +00:00
yury
11576fd24b
* fixed warnings and notes while compiling system unit for wince.
...
git-svn-id: trunk@4250 -
2006-07-18 15:00:09 +00:00
florian
7bff61ce29
* patch from Ales Katona to add a stack size parameter to tthread functions
...
git-svn-id: trunk@1621 -
2005-11-01 22:01:48 +00:00
michael
5cafc069b5
+ Removed NOSAVEREGISTERS define
...
git-svn-id: trunk@307 -
2005-06-09 17:58:20 +00:00
michael
93ba0409be
+ Removed HASCOMPILERPROC define
...
git-svn-id: trunk@265 -
2005-06-07 21:41:02 +00:00
michael
21425e303c
+ Removed HASVARIANT define
...
git-svn-id: trunk@244 -
2005-06-07 20:48:31 +00:00
michael
8a226bba52
+ Removed HASWIDESTRING/HASWIDECHAR defines
...
git-svn-id: trunk@241 -
2005-06-07 20:42:22 +00:00
michael
23ad0ae1ec
+ Removed HASINTF and VER1_0 defines
...
git-svn-id: trunk@239 -
2005-06-07 20:30:03 +00:00
peter
4ace790492
* remove $Log
...
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
99ebd46010
* several variant init./final. stuff fixed
2005-01-15 18:47:26 +00:00
florian
bd211ce900
+ init/cleaning code for variants added
2005-01-08 20:43:44 +00:00
florian
6c739fa996
* fixed rtti reading of arrays for 64 bit
2004-11-02 15:52:04 +00:00
peter
35e7518475
* rtti is always aligned, remove move() workarounds
2004-10-26 15:02:51 +00:00
peter
6214bb294b
* record and array parsing moved to procedure and handle like
...
a data stream instead of using records
2004-10-24 21:39:42 +00:00
peter
fd759e521f
* saveregisters calling convention is obsolete
2004-10-24 20:01:41 +00:00
florian
b39c0af01b
* rtti alignment fixed
2004-10-04 21:23:15 +00:00
florian
5064ecaf57
* sparc uses wait4 as well
2004-08-18 21:03:35 +00:00
peter
59691cc142
* decr ref doesn't reset pointer
...
* finalize resets pointer for astring,wstring
2004-07-02 21:21:09 +00:00
peter
3094258825
* removed warnings
2004-05-31 20:25:04 +00:00
florian
1d209e605e
* fixed alignment issues
2004-03-27 23:22:38 +00:00
peter
72324a4283
* tkclass removed from finalize()
...
* cleanupinstance now parses the tkclass rtti entry itself and
calls finalize() for the rtti members
2004-02-26 16:19:01 +00:00
michael
c89ab11d7a
+ Patch from peter to fix finalize (bug 2975)
2004-02-26 12:42:34 +00:00