Commit Graph

1171 Commits

Author SHA1 Message Date
paul
ea8bf4f2fd rtl: TObject.SafeCallException and TComponent.SafeCallException has HResult return value. Fix default return value to catastrophic failure error code.
git-svn-id: trunk@14936 -
2010-02-25 04:13:52 +00:00
ivost
efc3054644 * commented "deprecated". specialization is not working
git-svn-id: trunk@14894 -
2010-02-13 00:29:22 +00:00
marco
d742d6db58 * another fix for #15655, wrongly fixed in r14885
git-svn-id: trunk@14893 -
2010-02-12 22:32:22 +00:00
joost
8f90db3e98 * Fixed mem-leaks
git-svn-id: trunk@14891 -
2010-02-12 15:44:56 +00:00
ivost
2f20f6efc1 * marked old OnCompare properties as deprecated. use OnKeyCompare or OnDataCompare instead.
git-svn-id: trunk@14889 -
2010-02-11 20:48:35 +00:00
ivost
0637586076 * extended TFPGMap so that it's possible to add a custom compare function for data. Default compare function is binary compare.
git-svn-id: trunk@14888 -
2010-02-11 20:45:14 +00:00
ivost
02b4a626de * changed some var parameters to out. the context allows that. it's required to prevent "not initialized variable" warning.
git-svn-id: trunk@14886 -
2010-02-11 15:52:37 +00:00
marco
fb1e916ed2 * fix from mantis 15655 that adds notifiers to tlist.addlist.
git-svn-id: trunk@14885 -
2010-02-11 13:37:34 +00:00
florian
0c153a46df * math.power/intpower(0,0) return 1, this is as recommended in IEEE 754
as well as compatible with other programming languages and delphi

git-svn-id: trunk@14873 -
2010-02-06 23:10:03 +00:00
marco
706f0b7975 * New more delphi compat intstrtotime by Bart Broersma #15505 + test
git-svn-id: trunk@14854 -
2010-02-03 15:10:14 +00:00
Jonas Maebe
89e4e0fd25 * only wake up readers if all recursive write locks have been freed
git-svn-id: trunk@14831 -
2010-01-29 21:56:46 +00:00
Jonas Maebe
13e8b3f23e * don't give a "NoThreadError" for any default rtl/basicevent* routines,
so the TMultiReadExclusiveWriteSynchronizer routines can be safely
    executed even with the default thread manager -> removed ismultithread
    checks, so that it keeps working even if ismultithread is set to true
    between acquiring and freeing a lock (mantis #15619)

git-svn-id: trunk@14830 -
2010-01-29 21:01:11 +00:00
Jonas Maebe
e4858445c7 * make sure fwritelocked remains set correctly when using recursive write locks
git-svn-id: trunk@14828 -
2010-01-29 18:10:10 +00:00
Jonas Maebe
2c477269d0 * added a readbarrier after acquiring a read or write lock on
TMultiReadExclusiveWriteSynchronizer, to ensure that out-of-order
    execution cannot already perform some reads inside the critical section
    before the lock has been acquired
  - removed now unnecessary read barrier before releasing a read lock

git-svn-id: trunk@14820 -
2010-01-27 22:23:41 +00:00
marco
2c149e805a * fix for 15597. Added returnvalue to early-out exit().
git-svn-id: trunk@14818 -
2010-01-27 19:49:28 +00:00
marco
52e803112b * fix for #0 problem in posex + faster (indexbyte) based implementations.
git-svn-id: trunk@14786 -
2010-01-23 22:03:20 +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
micha
215823c88f * rtl: fix TFPGList Add/Insert hang/crash (issue #15500)
git-svn-id: trunk@14718 -
2010-01-17 15:34:45 +00:00
florian
50d1008577 * superfluos empty lines removed
git-svn-id: trunk@14596 -
2010-01-10 13:24:41 +00:00
Jonas Maebe
49f01e7b64 * replaced writelock of TMultiReadExclusiveWriteSynchronizer with a
critical section, so that it can be entered recursively just like
    the one from TSimpleRWSync + test
  - reverted r14593, since the reason for using TRWSync instead of
    TMultiReadExclusiveWriteSynchronizer was because the former
    supported recursive write locks

git-svn-id: trunk@14594 -
2010-01-10 12:14:21 +00:00
Jonas Maebe
47882716cf * use a TSimpleRWSync instead of a TMultiReadExclusiveWriteSynchronizer
for the globalnamespacelock, since it seems to require recursive locking
    (which TMultiReadExclusiveWriteSynchronizer does not support)

git-svn-id: trunk@14593 -
2010-01-10 11:41:55 +00:00
Jonas Maebe
356845ba1e * set function results for unimplemented generic thread manager routines
(to remove warnings)
  * don't give a thread error for basicevent and threadevent routines if
    isMultiThreaded is false, except for the waiting routines (the new
    TMultiReadExclusiveWriteSynchronizer creates/sets such events in the
    constructor, which caused thread manager errors in case cthreads was
    not used under unix)
  * don't perform any actual locking in TMultiReadExclusiveWriteSynchronizer
    routines if isMultiThreaded is false (in order to avoid the errors
    described above)
  + added generic RTLeventResetEvent stub

git-svn-id: trunk@14592 -
2010-01-10 11:04:05 +00:00
paul
9bad162368 rtl: fix crash in TMultiReadExclusiveWriteSynchronizer.Beginwrite
git-svn-id: trunk@14591 -
2010-01-10 09:35:37 +00:00
paul
538cf8667b rtl: fix compilation under windows
git-svn-id: trunk@14590 -
2010-01-10 06:28:50 +00:00
Jonas Maebe
8da0a031bf * fixed memory leak in new TMultiReadExclusiveWriteSynchronizer
(fwaitingwriterlock was not freed)
  * fixed typo in comment
  * free all memory in trwsync.pp test

git-svn-id: trunk@14588 -
2010-01-09 23:14:53 +00:00
Jonas Maebe
106baa8b2f * optimized version of TMultiReadExclusiveWriteSynchronizer that allows
concurrent readers (mantis #14451)

git-svn-id: trunk@14587 -
2010-01-09 23:00:45 +00:00
marco
8e9a7e14ad * Revised yesterday solution to a more general one. Executeprocess gets
another parameter, a set type with flags, default = []

git-svn-id: trunk@14572 -
2010-01-07 20:49:28 +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
florian
31e2f16484 resolves #15453:
* fixes i386 DivMod with negative numbers with a patch from Jonas
* fixes generic DivMod with negative numbers
* test updated

git-svn-id: trunk@14532 -
2010-01-03 14:59:01 +00:00
florian
42ae8bf971 * fixed memory stream compilation on 64 bit targets
git-svn-id: trunk@14523 -
2010-01-02 16:05:57 +00:00
florian
b5167560c3 * T*MemoryStream now uses PtrInt for sizes and positions so it can be bigger than 2 GB on 64 Bit systems, resolves #15313
git-svn-id: trunk@14513 -
2010-01-01 21:05:18 +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
paul
5cc182ac07 rtl: fix FormatFloat to skip first spaces
git-svn-id: trunk@14490 -
2009-12-28 15:53:35 +00:00
florian
8cecea9b53 * GetEnumName handles subrange types correctly, resolves #15377
git-svn-id: trunk@14461 -
2009-12-22 11:36:47 +00:00
florian
230142f08b * change length parameter of CompareMem/CompareMemRange into PtrUInt, resolves #15190
* use CompareByte inside these routines instead of simple handmade code

git-svn-id: trunk@14435 -
2009-12-13 11:42:05 +00:00
paul
1cd32f5327 rtl: implement TCollection.SetPropName
git-svn-id: trunk@14295 -
2009-12-02 03:40:26 +00:00
giulio2
d257b19798 * Skip UTF-8 BOM in TParser (classes) and dfmreader (fcl-res)
git-svn-id: trunk@14292 -
2009-11-30 21:55:25 +00:00
michael
01ed4a6745 * Implemented OnBeep to install custom beep handler
git-svn-id: trunk@14254 -
2009-11-22 17:33:56 +00:00
paul
64b6700c61 rtl: add enumerator for the TFPGList type
git-svn-id: trunk@14245 -
2009-11-21 18:51:48 +00:00
marco
4104d9f481 * More pluggability of the RTL. Mantis 15124
git-svn-id: trunk@14212 -
2009-11-18 21:16:12 +00:00
marco
17062d667c * ansistring versions of mk/rm/chdir in objpas, Mantis 15010. The os-dependant routines of *nix/os2/win/dos have been converted
git-svn-id: trunk@14211 -
2009-11-18 18:04:51 +00:00
marco
805e5a79c6 * writer.writeset, reader.readset as per mantis 10501
git-svn-id: trunk@14200 -
2009-11-16 12:50:18 +00:00
marco
6df3352279 * move constants out of ifndef wince, bug #15057.
git-svn-id: trunk@14163 -
2009-11-13 14:09:50 +00:00
marco
5163b44ac6 * Patch for "formatsettings" overloads of currency functions, mantis 15067
git-svn-id: trunk@14162 -
2009-11-13 09:10:24 +00:00
marco
b3ea1668db * improvements to sysuitls date/time formatting routines: (Mantis 14905,Sergei)
- Adds threadsafe (Delphi-compatible) versions of DateToStr, 
	TimeToStr, DateTimeToStr, FormatDateTime.
   - Core functionality moved to DateTimeToString, which directly 	
	uses 'out' parameter in order to avoid unnecessary result copying.
   - Modified the code so no temporary AnsiStrings are used (speed).
   - Fixes a bug which would cause infinite recursion if 
     (Short|Long)DateFormat variable would contain 'd' character or, 
      likewise, (Short|Long)TimeFormat would contain 't'.
   - Fixes numerous small Delphi compatibility issues, like: empty format 
      string has the same effect as 'C'; overlong tokens treated as the 
      longest possible ones (e.g. 'ddddddddd' is the same as 'dddddd'); 
      'AM/PM' is output preserving its case, etc.
   - minor reformating

git-svn-id: trunk@14116 -
2009-11-08 15:07:00 +00:00
marco
e018effcd2 * non-resolved methods are not written. Mantis 13846(laz) / 14798(fpc)
git-svn-id: trunk@14115 -
2009-11-08 14:21:03 +00:00
marco
27114853b4 * TStream.Read/writeqword. Mantis 15023
git-svn-id: trunk@14111 -
2009-11-08 11:47:50 +00:00
marco
887d8a9d92 * replace encodedate/time by try variants mantis 14969
git-svn-id: trunk@14110 -
2009-11-08 11:43:01 +00:00