Commit Graph

144 Commits

Author SHA1 Message Date
michael
7069db2194 * Fixed setting of RAW interfaces
git-svn-id: trunk@17391 -
2011-05-02 19:16:53 +00:00
svenbarth
b0b051ae83 Introduce a new type kind for helpers in the RTTI. This is Delphi incompatible, but it's cleaner than Delphi's "let's extend some magic class". This might not matter much though, because according to Google the RTTI for class helpers seems to be rarely used.
* compiler/ncgrtti.pas:
- objectdef_rtti_class_full:
 - don't write the VMT data for helpers
 - write the typeinfo of the extended type (something that Delphi does definitely not support :P )
- objectdef_rtti: write the new type kind for helpers instead that of classes
* compiler/symconst.pas: introduce new type kind constant "tkHelper" before "tkFile" (what is that used for btw?)
* rtl/inc/system.inc: add the constant here as well (why wasn't tkUChar added here?)
* objpas/typinfo.pp: 
- add tkHelper to the TTypeKind enum (but here tkUChar was added?!)
- extend the TTypeData record with the data of helpers

git-svn-id: branches/svenbarth/classhelpers@17240 -
2011-04-03 14:13:00 +00:00
paul
e69de6110b rtl: add mkOperatorOverload to TMethodKind enum
git-svn-id: trunk@16694 -
2011-01-03 16:10:36 +00:00
Jonas Maebe
700aa3cf11 * GetEnumNameCount also counted the unit name after r14511 (mantis #16402)
git-svn-id: trunk@15225 -
2010-05-04 17:59:58 +00:00
paul
24d8a7d833 compiler: start implementation of class constructors/destructors: parsing is ready but at the moment neither class constructors nor destructors are called - this is to be implemented
git-svn-id: trunk@15109 -
2010-04-03 09:14:12 +00:00
paul
d3820bfa58 rtl: add TVmtFieldTable, TVmtFieldEntry to typinfo unit since delphi has that declarations too
git-svn-id: trunk@14754 -
2010-01-20 15:17:06 +00:00
florian
4ddebcbf1c * handle subrange enumeration types in GetEnumValue correctly, resolves #15467
git-svn-id: trunk@14544 -
2010-01-05 16:10:13 +00:00
paul
c83fc67e32 compiler: write correct method kind for constructors,destructors and class methods
git-svn-id: trunk@14512 -
2010-01-01 20:22:02 +00:00
paul
db0f23e643 compiler: write not dummy unit name for enumeration and dynamic array rtti
git-svn-id: trunk@14511 -
2010-01-01 19:32:53 +00:00
paul
17bd267141 compiler, rtl: write calling conventions for tkMethod members (issue #0014573)
git-svn-id: trunk@14508 -
2010-01-01 14:36:33 +00:00
florian
8cecea9b53 * GetEnumName handles subrange types correctly, resolves #15377
git-svn-id: trunk@14461 -
2009-12-22 11:36:47 +00:00
Jonas Maebe
c2c68ddb8f - removed FPC_NEW_BIGENDIAN_SETS define and if(n)defs
* left old cpu-specific set helper code under ifdef FPC_OLD_BIGENDIAN_SETS
    in case someone wants to write new assembler set helpers (although most
    of them should be optimally generated by the compiler already if
    http://wiki.freepascal.org/FPC_HowToDo#Bit.28field.29_getting.2Fsetting_primitives
    are optimally implemented)

git-svn-id: trunk@13582 -
2009-08-23 08:16:40 +00:00
Jonas Maebe
77feb9d45c * fixed setstrprop() for shortstring properties (based on hint by Zawullon,
mantis #14040)

git-svn-id: trunk@13323 -
2009-06-26 11:34:04 +00:00
Jonas Maebe
f2ce99029b * fixed sets in rtti for big endian systems
* changed set sizes in rtti to 1 byte for Delphi compatibility
  * fixed tests/webtbs/tw12038 for the new set sizes
  * documented at http://wiki.freepascal.org/User_Changes_Trunk#Sets_in_RTTI_.28run-time_type_information.29

git-svn-id: trunk@12894 -
2009-03-15 12:06:30 +00:00
ivost
8fe3b40070 * added helper function "FindPropInfo" with additional TypeKind filter parameter
git-svn-id: trunk@11856 -
2008-10-02 21:56:54 +00:00
florian
50012c2357 * fix by Inoussa OUEDRAOGO to improve UnicodeString property handling, resolves #12224
git-svn-id: trunk@11832 -
2008-09-27 13:25:11 +00:00
ivost
fc6ae58b9b * added GetPropList function for TClass parameter
git-svn-id: trunk@11811 -
2008-09-21 00:56:06 +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
67e811db60 * handle booleans correctly in Typinfo.GetEnum*, resolves #11372
git-svn-id: trunk@11284 -
2008-06-26 20:01:31 +00:00
michael
aaa394cb93 * GetPropList returns nil if no items found. Memory Leak stopped in case of exception
git-svn-id: trunk@10580 -
2008-03-29 09:32:13 +00:00
micha
83b7f81f81 + add no-fpu support to compiler/rtl for powerpc-linux (-Cfnone)
git-svn-id: trunk@10422 -
2008-03-02 12:59:02 +00:00
florian
c46b44b797 resolves #10509
* fixed SetInterfaceProp
+ PInterface
* extended trtti1

git-svn-id: trunk@10334 -
2008-02-15 20:54:10 +00:00
michael
067d1ab582 * Added EPropertyConvertError class
git-svn-id: trunk@9598 -
2007-12-30 22:03:56 +00:00
michael
a375df54f2 Implemented get/setinterfaceproperty. Needs checking
git-svn-id: trunk@9597 -
2007-12-30 22:01:53 +00:00
yury
d306e25dc8 * Fixed warnings.
git-svn-id: trunk@9514 -
2007-12-22 12:27:03 +00:00
yury
8b12a7f2c2 * Fixed warnings.
git-svn-id: trunk@9506 -
2007-12-21 23:10:33 +00:00
peter
6ed3d91989 * CompareText for shortstrings added
* optimize CompareText
  * use CompareText for case-insenstive compares in the RTL
  patches from Sergei Gorelkin

git-svn-id: trunk@9384 -
2007-12-02 18:36:20 +00:00
florian
4b172f5973 * made rtti for dyn. arrays more delphi compatible, resolves #9464
git-svn-id: trunk@8853 -
2007-10-19 20:27:45 +00:00
Jonas Maebe
a0b57eddb5 * new internal set format for big endian systems. Advantages:
* varsets ({$packset x}) are now supported on big endian targets
    * gdb now displays sets properly on big endian systems
    * cleanup of generic set code (in, include/exclude, helpers), all
      based on "bitpacked array[] of 0..1" now
  * there are no helpers available yet to convert sets from the old to
    the new format, because the set format will change again slightly
    in the near future (so that e.g. a set of 24..31 will be stored in
    1 byte), and creating two classes of set conversion helpers would
    confuse things (i.e., it's not recommended to use trunk currently for
    programs  which load sets stored to disk by big endian programs compiled
    by previous FPC versions)
  * cross-endian compiling has been tested and still works, but one case
    is not supported: compiling a compiler for a different endianess
    using a starting compiler from before the current revision (so first
    cycle natively, and then use the newly created compiler to create a
    cross-compiler)

git-svn-id: trunk@7395 -
2007-05-19 17:15:15 +00:00
florian
c29455b111 * handle rtti for sets with a size of 1 and 2 properly, resolves #8660
git-svn-id: trunk@7125 -
2007-04-17 20:34:58 +00:00
Jonas Maebe
bdc378e250 * fixed 64 bit compilation
git-svn-id: trunk@6816 -
2007-03-13 08:35:08 +00:00
florian
418222bc32 * handle interfaces et al. correctly in Set/GetOrdProp, resolves #8510
git-svn-id: trunk@6804 -
2007-03-12 19:38:22 +00:00
Vincent Snijders
d87dc4e3f8 * always pass property value by value to the property setter of a method, the optimization (to prevent copying) to pass just the reference doesn't work on arm, for example (bug 8273)
git-svn-id: trunk@6370 -
2007-02-07 22:06:15 +00:00
Jonas Maebe
7b9bccf339 * fixed error due to {$t+} change
git-svn-id: trunk@4805 -
2006-10-05 15:05:36 +00:00
micha
d704af7216 fix compilation for {$T+} linux/win
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +00:00
peter
3bf8ff56ba * fix calling of stored function with index
git-svn-id: trunk@4743 -
2006-09-28 05:54:51 +00:00
michael
7e3b7caf31 + Additional fixes in setfloatprop needed
git-svn-id: trunk@4728 -
2006-09-25 21:29:40 +00:00
michael
8d6cc357c0 * Fixed bug #7445
git-svn-id: trunk@4727 -
2006-09-25 21:20:47 +00:00
peter
16f121a8bc * reuse generic align()
git-svn-id: trunk@4382 -
2006-08-07 07:03:25 +00:00
michael
736b9ec000 + Patch from Graeme Geldenhuys to add delphi compatibility function
git-svn-id: trunk@2358 -
2006-01-28 18:07:23 +00:00
peter
68e56b9fc7 * write only unique property names in rtti
git-svn-id: trunk@2007 -
2005-12-20 14:44:48 +00:00
peter
6238b1a917 * use NameIndex in GetPropInfos
git-svn-id: trunk@2004 -
2005-12-20 10:35:08 +00:00
florian
9749238cfe * OrdType isn't valid for Int64 and QWord
git-svn-id: trunk@1644 -
2005-11-04 21:22:00 +00:00
tom_at_work
282f33100f * bugfix of webbug 4404
git-svn-id: trunk@1304 -
2005-10-05 21:56:49 +00:00
peter
22a20e15e4 * aligntoptr needs to use unsigned calculations, patch by Thomas
git-svn-id: trunk@1148 -
2005-09-20 13:53:54 +00:00
florian
b1b0ffc1ec * fixed more 64 bit issues (by Vincents Snijders)
git-svn-id: trunk@1092 -
2005-09-16 18:40:17 +00:00
florian
451a7c3366 + GetEnumNameCount by Danny Milosavljevic
git-svn-id: trunk@783 -
2005-08-03 18:54:18 +00:00
michael
64f1948f3e + Added overloaded stringtoset which starts from typinfo, not propinfo
git-svn-id: trunk@492 -
2005-06-25 17:26:36 +00:00
michael
2ec3e6db01 + Added overloaded settostring which starts from typinfo, not propinfo
git-svn-id: trunk@491 -
2005-06-25 17:22:21 +00:00
florian
90cdc1b6fe * fixed interface rtti, fixes bug #4089
git-svn-id: trunk@422 -
2005-06-15 21:27:51 +00:00