Commit Graph

1353 Commits

Author SHA1 Message Date
sergei
131b7fcdb2 * RTL: Replaced deprecated formatting symbols with their up-to-date counterparts, reduces compiler noise.
* Also removed some unused variables.

git-svn-id: trunk@16744 -
2011-01-09 15:27:05 +00:00
sergei
c0f6084c2e * SysUtils.Format: Fixed behavior in case when format specifier contains both index and '*' for width/precision.
+ test

git-svn-id: trunk@16740 -
2011-01-08 20:08:16 +00:00
paul
e69de6110b rtl: add mkOperatorOverload to TMethodKind enum
git-svn-id: trunk@16694 -
2011-01-03 16:10:36 +00:00
marco
ff2292aafa * Patch from LacaK2 to improve decimalpoint localisation. (Mantis 18338)
git-svn-id: trunk@16653 -
2010-12-29 12:33:14 +00:00
marco
df16200a75 * Patch from LacaK2 fixing else clause of vartobcd, bug #16853
git-svn-id: trunk@16584 -
2010-12-17 18:57:16 +00:00
sergei
3c2d918cfe * Partially undo revision 16529: removing VariantToShortString breaks webtbs/tw14536 which calls the mentioned function directly instead of using typecast.
git-svn-id: trunk@16557 -
2010-12-11 23:25:20 +00:00
sergei
ae7018cf85 variants, varutils: another portion of misc fixes:
* Handle Variant to ShortString conversions entirely in variants unit, removed VarUtils.VariantToShortString
+ support varUString in DoVarClearComplex
* fixed missing result assignment in TCustomVariantType.VarDataIsEmptyParam
* TCustomVariantType.UnaryOp and BinaryOp now 'implemented', they raise EVariantInvalidOp

git-svn-id: trunk@16529 -
2010-12-10 03:38:21 +00:00
sergei
5bf51c991c * VarUtils, fixed missing support for interfaces
- NoInterfaces() not used anymore, removed
+ Basic test for VariantArray of IInterface

git-svn-id: trunk@16527 -
2010-12-09 16:38:55 +00:00
sergei
4e3cedb492 * VariantInit is a procedure, not a function (according to both MSDN and Delphi docs).
git-svn-id: trunk@16525 -
2010-12-09 01:27:09 +00:00
sergei
ddfb032913 * VarUtils, fixed a wrong identifier
git-svn-id: trunk@16524 -
2010-12-08 23:42:39 +00:00
marco
69c89d4579 * more tcustomvariant conversion helpers from Lacak2. Mantis 16853
git-svn-id: trunk@16504 -
2010-12-04 20:21:03 +00:00
sergei
b8aec6e4aa + Support for UnicodeString in variant conversions, based on patch from Ivan Shikhalev, resolves #18083.
git-svn-id: trunk@16502 -
2010-12-04 03:53:28 +00:00
marco
9534c5bd8b * Delphi XE (2010?) compatible alias for defaultformatsettings.
* deprecated separate globals (Delphi XE). Causes some deprecated
      warnings in dati.inc that still have to be fixed.

git-svn-id: trunk@16482 -
2010-11-30 09:49:19 +00:00
florian
6b42ba170b + TFPGObjectList.GetEnumerator and TFPGInterfacedObjectList.GetEnumerator, resolves #18094
git-svn-id: trunk@16471 -
2010-11-28 20:32:35 +00:00
ivost
5f39d255e1 * added TFPGMapInterfacedObjectData: This generic class expects a TInterfacedObject as type of TData. The advantage over TFPGMap is, that refcounting is used. It's compareable to TFPGInterfacedObjectList. Note that this only works within the TData part, TKey is not refcounted!
git-svn-id: trunk@16455 -
2010-11-27 16:02:01 +00:00
michael
fa0454afe2 * Fixed references to sub components (mantis #18021)
git-svn-id: trunk@16448 -
2010-11-26 14:51:43 +00:00
florian
3d13c2e2be * cleaned up ver2_0 defines
git-svn-id: trunk@16430 -
2010-11-25 14:28:31 +00:00
florian
ef0899425b * adds assign methods to the fgl classes based on a patch by Aleksa Todorovic, resolves #10479
git-svn-id: trunk@16429 -
2010-11-25 14:12:13 +00:00
ivost
e770bc597f * fixed refcounting problem. When copy an item over an existing one, the existing one was not dereferenced
* removed some old (useless) commented code

git-svn-id: trunk@16424 -
2010-11-24 23:08:12 +00:00
michael
c4cc9b59e0 * Tag is now PtrInt, for upcoming Delphi 64-bit compatibility
git-svn-id: trunk@16408 -
2010-11-23 21:19:39 +00:00
sergei
5f1d15c693 * Patch from LacaK2 implementing some missing properties of BCDVariant, partially fixes #16853.
git-svn-id: trunk@16404 -
2010-11-22 22:50:40 +00:00
michael
a1d8ad7a27 * Changed var to out in TStringList.Find
git-svn-id: trunk@16395 -
2010-11-21 18:20:44 +00:00
sergei
907e7a32d5 * GetFileHandle(), THandleStream: changed type that is used to store file handle from Integer to THandle, so it can be redefined to 64 bits on certain platforms, see http://lists.freepascal.org/lists/fpc-devel/2010-November/023019.html
git-svn-id: trunk@16383 -
2010-11-20 12:58:53 +00:00
sergei
6d89ec4ee4 * SysUtils unit, fixed return value of FileSetDate:
* return value of GetLastOSError if one is available, to be consistent with handle-based implementations and Delphi behavior.
  * otherwise, return -1

git-svn-id: trunk@16318 -
2010-11-09 09:52:42 +00:00
marco
71aa7eaabd * fix from mantis 17818. Value is only peaked, add readvalue to also consume it.
git-svn-id: trunk@16301 -
2010-11-03 20:45:01 +00:00
sergei
ffc357a528 * TThread, Windows implementation: prevent resource leak when destroying an initially suspended and never resumed thread. The thread must be always resumed so that ThreadProc can complete and cleanup. Fixes Mantis #17560.
git-svn-id: trunk@16290 -
2010-11-01 22:37:33 +00:00
florian
b4c912bf92 * made Byte/Word/Long/Int64Rec endian safe
+ Int128/OWordRec

git-svn-id: trunk@16279 -
2010-10-31 17:57:54 +00:00
sergei
12f6eb2c4e * types.pp, applied a fix similar to r16224,16226 also to UnionRect function. It is very similar to IntersectRect and parameter aliasing issue applies to it as well (see Mantis #17722).
git-svn-id: trunk@16235 -
2010-10-28 04:18:53 +00:00
sekelsenmat
3c2a94fad3 Makes IntersectRect more efficient
git-svn-id: trunk@16226 -
2010-10-26 15:49:25 +00:00
sekelsenmat
b4b9354468 Makes IntersectRect more robust. See bug #17722
git-svn-id: trunk@16224 -
2010-10-26 14:49:35 +00:00
sekelsenmat
8b6e8079ec Fixes a potential crash in TStrings.SaveToStream
git-svn-id: trunk@16187 -
2010-10-19 15:50:13 +00:00
joost
07bf44517c * Merged XPCom branch into trunk, added support for constref and changed
the IInterface implementation to be XPCom-compatible
--- Merging r15997 through r16179 into '.':
U    rtl/inc/variants.pp
U    rtl/inc/objpash.inc
U    rtl/inc/objpas.inc
U    rtl/objpas/classes/persist.inc
U    rtl/objpas/classes/compon.inc
U    rtl/objpas/classes/classesh.inc
A    tests/test/tconstref1.pp
A    tests/test/tconstref2.pp
A    tests/test/tconstref3.pp
U    tests/test/tinterface4.pp
A    tests/test/tconstref4.pp
U    tests/webtbs/tw10897.pp
U    tests/webtbs/tw4086.pp
U    tests/webtbs/tw15363.pp
U    tests/webtbs/tw2177.pp
U    tests/webtbs/tw16592.pp
U    tests/tbs/tb0546.pp
U    compiler/sparc/cpupara.pas
U    compiler/i386/cpupara.pas
U    compiler/pdecsub.pas
U    compiler/symdef.pas
U    compiler/powerpc/cpupara.pas
U    compiler/avr/cpupara.pas
U    compiler/browcol.pas
U    compiler/defcmp.pas
U    compiler/powerpc64/cpupara.pas
U    compiler/ncgrtti.pas
U    compiler/x86_64/cpupara.pas
U    compiler/opttail.pas
U    compiler/htypechk.pas
U    compiler/tokens.pas
U    compiler/objcutil.pas
U    compiler/ncal.pas
U    compiler/symtable.pas
U    compiler/symsym.pas
U    compiler/m68k/cpupara.pas
U    compiler/regvars.pas
U    compiler/arm/cpupara.pas
U    compiler/symconst.pas
U    compiler/mips/cpupara.pas
U    compiler/paramgr.pas
U    compiler/psub.pas
U    compiler/pdecvar.pas
U    compiler/dbgstabs.pas
U    compiler/options.pas
U    packages/fcl-fpcunit/src/testutils.pp

git-svn-id: trunk@16180 -
2010-10-17 20:58:22 +00:00
marco
a680c63950 * TThread.Resume and suspend deprecated (see user changes trunk)
git-svn-id: trunk@16171 -
2010-10-15 22:15:57 +00:00
sergei
6a9a991dca * Fixed TryStrToDateTime so it returns True only if both date and time are parsed successfully, resolves #17541.
git-svn-id: trunk@16099 -
2010-10-07 09:48:18 +00:00
mazen
b127fc154a * Fixed spell error revealed by lintian.
git-svn-id: trunk@16094 -
2010-10-06 20:33:57 +00:00
sergei
a66876704b * Windows platforms: always start a thread in suspended state and resume it later in AfterConstruction if necessary, prevents race conditions in constructor. Fixes Mantis #16884 on Windows.
git-svn-id: trunk@16091 -
2010-10-06 16:57:15 +00:00
marco
6ebda8f2cc * D2009 compat: TStringList.OwnsObjects
git-svn-id: trunk@16058 -
2010-09-28 14:52:44 +00:00
michael
b93ab63038 * Fixed IntToHex in case of (0,0)
git-svn-id: trunk@16026 -
2010-09-20 07:46:04 +00:00
michael
154c6ec4d2 * Implementation of values 11..15 of negcurrentformat from Zeljan Rikalo
git-svn-id: trunk@15982 -
2010-09-14 11:23:41 +00:00
michael
f7b268713d * Patch from Zeljan Rikalo to fix issue #13722 (FloatToStrF negative 0)
git-svn-id: trunk@15945 -
2010-09-06 11:09:39 +00:00
marco
d39c2ed039 * fix for 17123, rounding issues decodedatetime
git-svn-id: trunk@15804 -
2010-08-13 23:36:07 +00:00
florian
4671615dc7 * disable east asia/era stuff on WinCE, the functions does not seem to be available there, fixed compilation of trunk for WinCE
git-svn-id: trunk@15782 -
2010-08-11 20:30:14 +00:00
marco
8caa62618f * support for east asia locale in formatdatetime. Patch from Taka_JP, mantis 14955 modified for recent sysutils rework, and to init eastasia support only once.
git-svn-id: trunk@15776 -
2010-08-11 09:03:13 +00:00
Jonas Maebe
89be8d45e3 * use TrueBoolStrs/FalseBoolStrs for *StrToBool* (mantis #16848)
git-svn-id: trunk@15764 -
2010-08-10 13:06:22 +00:00
michael
4d2786d238 * Patch from Luiz americo to use FPList where possible
git-svn-id: trunk@15663 -
2010-07-30 09:06:18 +00:00
paul
dbbe861797 rtl: make fgl compilable with 2.4.0
git-svn-id: trunk@15658 -
2010-07-29 01:47:57 +00:00
paul
790f6b0a4b compiler: use delphi syntax for type, const and var section declarations in classes instead of fpc generics syntax
rtl: fix fgl to use the new syntax
tests: fix generics tests to use the new syntax

git-svn-id: trunk@15646 -
2010-07-27 00:59:32 +00:00
Jonas Maebe
0207e5f8cd * fixed windows compilation after r15599
git-svn-id: trunk@15606 -
2010-07-19 09:24:26 +00:00
Jonas Maebe
d7cdd9afba * allow tthread-based threads to only start executing once the constructor
has finished running (based on patch by Jared Davison, mantis #16884)

git-svn-id: trunk@15599 -
2010-07-18 16:31:25 +00:00
marco
d8707ec5d3 * hmodule should scale with pointertype on non-windows.
git-svn-id: trunk@15510 -
2010-07-02 20:08:05 +00:00
Jonas Maebe
7d27f4c21d * also support variants for %s in sysutils.format (mantis #16787)
git-svn-id: trunk@15509 -
2010-07-02 19:59:58 +00:00
florian
138c5d1570 + feature switch RESOURCES
* use of feature switches in objpas updated
+ build unit objpas for embedded targets

git-svn-id: trunk@15473 -
2010-06-22 12:37:41 +00:00
michael
45d60dbb97 * Patch from Mattias Gaertner to fix missing classname placeholder
git-svn-id: trunk@15448 -
2010-06-18 19:40:12 +00:00
michael
037c783442 * Patch from Mattias gaertner to support lazarus lfm encoding in TParser
git-svn-id: trunk@15415 -
2010-06-12 20:54:33 +00:00
michael
561972e0fc * Added TDataModuleClass class pointer
git-svn-id: trunk@15353 -
2010-05-31 09:53:18 +00:00
paul
8dfed24f3a rtl: don't use c-style +=, -= in freebidi, utf8bidi since they can't be compiled with default options in this case
git-svn-id: trunk@15321 -
2010-05-24 03:35:34 +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
ivost
980c353421 * added function IncludeLeadingPathDelimiter: it adds a path delimiter in front of a path
* added function ExcludeLeadingPathDelimiter: it removes a path delimiter in front of a path
* added function ConcatPaths: it concats multiple path fragments, path delimiters are added if necessary

git-svn-id: trunk@15167 -
2010-04-24 21:05:05 +00:00
Jonas Maebe
c67712f81f + tthread.start method, simply calls tthread.resume for now (mantis #16326)
git-svn-id: trunk@15165 -
2010-04-24 14:52:08 +00:00
paul
a1d94c6829 rtl: implement TStreamAdapter.CopyTo, .SetSize, return proper error value for Clone instead of raising exception (#0016161) + test
git-svn-id: trunk@15138 -
2010-04-11 12:52:31 +00:00
marco
cbf7b49dd1 * removed packed from statstg, which causes trouble in win64, and is probably wrong. Mantis 16159
git-svn-id: trunk@15136 -
2010-04-11 11:21:39 +00:00
paul
17687d90ce rtl: minor changes for TStreamAdapter:
- return STG_E_INVALIDPOINTER instead of E_INVLIDARG for Read,Write as msdn requires
  - return STG_E_INVALIDFUNCTION instead of E_INVLIDARG for Seek as msdn requires

git-svn-id: trunk@15127 -
2010-04-10 17:50:29 +00:00
michael
bc735a639f * Call specialchars in TStringList constructor
git-svn-id: trunk@15116 -
2010-04-08 06:51:26 +00:00
Jonas Maebe
a18f2594e2 * fixed FloatToStr for ffGeneral when dealing with numbers whose number of
significant digits before the decimal points matches the precision
    parameter exactly (mantis #16188)
  * round instead of cut off digits in FloatToStr with ffGeneral
  * take into account the minus sign when determining whether a number needs
    to be represented using ffExponent instead of ffGeneral because it has
    too many digits

git-svn-id: trunk@15114 -
2010-04-05 14:54:24 +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
Jonas Maebe
60f8b7fcb1 + int64 version of randomrange() (mantis #16108)
git-svn-id: trunk@15097 -
2010-03-30 20:04:19 +00:00
ivost
a6022f5df2 * removed IImplementorGetter interface and replaced it by the guid IObjectReference.
* GetInterface and GetInterfaceWeak is modified so that when querying for IObjectReference not an interface is returned but the object pointer

git-svn-id: trunk@15087 -
2010-03-28 12:35:50 +00:00
ivost
7025b1ac01 * added supports helper functions for IInterface supports TClass -> TObject,Boolean
git-svn-id: trunk@15086 -
2010-03-28 11:51:38 +00:00
ivost
5a588e5f06 * fixed Supports function so that it's using new function GetInterfaceWeak. Supports may have accidentially freed a objects.
git-svn-id: trunk@15078 -
2010-03-27 17:02:09 +00:00
Jonas Maebe
d5f415b047 * initialise fwritelocked and freadercount in the TMREWS constructor using
atomic operations so that in case it's created while multiple threads are
    already running, all threads are guaranteed to see this initialisation
  * some minor changes to the comments of TMREWS

git-svn-id: trunk@15074 -
2010-03-27 12:44:51 +00:00
ivost
8391b717ea * Some (delphi) applications expect that the QueryInterface method is invoked as first priority to query for an interface and GetInterface as 2nd priority
* The changes to the support functions are going to conform that.

git-svn-id: trunk@15066 -
2010-03-26 00:01:52 +00:00
Jonas Maebe
531efc5a69 * round(x) -> trunc(x+0.5) in Julian date conversion to prevent the current
rounding mode from influencing the result

git-svn-id: trunk@15037 -
2010-03-23 10:34:43 +00:00
Jonas Maebe
4303eda80c * moved SInvalidJulianDate from rtlconst to sysconst (part of r15032,
necessary because dateutils only depends on sysconst and it contains
    the julian-datetime helper routines)

git-svn-id: trunk@15033 -
2010-03-22 22:28:59 +00:00
Jonas Maebe
82ff623390 + fixed Julian date helpers (based on patch by Bernd Engelhardt, mantis
#16040)
  * finished remaining unimplemented Julian date helpers

git-svn-id: trunk@15032 -
2010-03-22 21:01:46 +00:00
marco
49fc4795e3 * fix for mantis 16052 RFC4122 compliance of own random GUID creation. Part II
git-svn-id: trunk@15024 -
2010-03-20 14:08:10 +00:00
marco
b6048862b8 * fix for mantis 16052 RFC4122 compliance of own random GUID creation.
git-svn-id: trunk@15023 -
2010-03-20 13:03:45 +00:00
michael
f29973cc71 * Added Exchange to TCollection. Bug ID #15517
git-svn-id: trunk@15012 -
2010-03-14 10:25:32 +00:00
paul
e2dbccf017 rtl: fix streaming of ancestor components - save/restore FRootAncestor in TWriter.WriteComponent because it can be changed by DoFindAncestor call (if IDE/or user code is connected to OnFindAncestor event)
git-svn-id: trunk@14969 -
2010-03-04 07:21:18 +00:00
marco
be98b13554 * fix for 11263, changed fileread and fd_zero to out using $modeswitch.
git-svn-id: trunk@14965 -
2010-03-01 22:35:14 +00:00
joost
151fab0548 * Moved TEventType from eventlog.pp tot sysutils
* Added empty TCustomApplication.Log method

git-svn-id: trunk@14960 -
2010-03-01 13:15:36 +00:00
paul
8d7312f87b rtl: use CreateVCLComObject routing to create VCLComObject in case it is not assigned + test
git-svn-id: trunk@14948 -
2010-02-27 08:49:50 +00:00
paul
9aa4504369 rtl: initial TComponent.VCLComObject support - map interface related TComponent methods to the appropriate IVCLComObject interface methods
git-svn-id: trunk@14947 -
2010-02-27 08:05:51 +00:00
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
pierre
2b879fcb54 MaybeSkipTimeWrap function: Change NewDate var_type to var to suppress warnings
git-svn-id: trunk@14091 -
2009-11-07 00:30:32 +00:00
marco
6ed7d33569 * patch from 15003 from M spiller, reverting now implemented.
git-svn-id: trunk@14078 -
2009-11-06 10:52:23 +00:00
marco
21f569391b * Patch from Sergei/Anton. Mantis 10948. Under ifndef ver2_2
git-svn-id: trunk@14069 -
2009-11-05 20:42:18 +00:00
ivost
10e78efaac * removed commented code in TryStringToGUID
git-svn-id: trunk@14060 -
2009-11-04 23:04:30 +00:00
ivost
537825dee9 * fixed TryStringToGUID: this function throwed an exceptions
git-svn-id: trunk@14059 -
2009-11-04 23:02:32 +00:00
marco
8bc0583045 * trystrto* variants with formatsettings.
git-svn-id: trunk@14018 -
2009-11-03 21:20:10 +00:00
paul
8292fcc49e rtl: override TObject.Equals for TBits and TStrings classes
git-svn-id: trunk@14013 -
2009-11-03 02:01:06 +00:00
paul
aa5a5e79ce merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994:
rtl: add enumerators to the basic classes
tests: add enumerators test which compiles and work both by fpc and dcc
compiler: 
  + start for-in loop implementation: implement for-in loop for types (enumerations and ranges), strings, arrays and sets. todo: perform type checking, optimize array and string loops - use temp for expression, implement for-in loop for classes
test:
  + add a simple test for the 'for-in' loop
compiler: fix string for-in loop. now it uses a temp variable to store string expression result
complier: fix for-in array loop. use a temp variable for the loop expression only if loop is not an open array loop
complier: continue enumerator implementation:
  + add operator enumerator which give an ability to add enumerator for an existent type (for example to override builtin string enumerator)
  + add class enumerator support via delphi compatible GetEnumerator method + enumerator class/object template (function MoveNext: Boolean; property Current)
  + tests
compiler: fix for-in loop for arrays. delphi does not copy arrays to a temp variable and it is possible to change array during loop. + test
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: enumerator directive support:
  + allow to mark methods and properties by 'enumerator MoveNext' and 'enumerator Current' modifiers. Parser checks return types and duplicates.
  + prefer *marked* by enumerator directive methods and properties than GetEnumerator and Current builtin symbols
  + increase ppu version
  + test
rtl: add IEnumerator and IEnumerable interfaces declarations
tests: for-in loop tests:
  + add small comment at the top of test program
compiler: allow 'enumerator MoveNext' for the interface function declaration + test
compiler: move all for-in loop helpers to the nflw unit
compiler: don't allow the compiler to choose the non-valid enumerator operator for the for-in loop

git-svn-id: trunk@14008 -
2009-11-02 03:24:48 +00:00
paul
dfef902c53 rtl: introduce new TObject methods: UnitName, GetHashCode, Equals, ToString added for compatibility with delphi 2009.
+ changes in compiler, utils, packages to resolve identifier conflicts with the new TObject methods (like changing of UnitName arguments to AUnitName, adding Classes. before the toString, etc). (issue #0014931)

git-svn-id: trunk@14005 -
2009-11-01 16:22:47 +00:00
marco
de350d5c26 * fixed compilation win32/win64 after (my) last commit.
due to wince <-> win32/win64 headerwise. wince has some identifiers in Windows that win32/win64 has in activex
 * patches for comobj/comserv from 0014822 and 0014939	as well as one minor fix to activex.

git-svn-id: trunk@13991 -
2009-10-31 22:31:26 +00:00
ivost
4d0272fd5c * resourcestring SCannotCreateDir: translated from german to english
git-svn-id: trunk@13990 -
2009-10-31 22:08:22 +00:00
marco
09b22de964 * TStreamAdapter + relevant constants. From 10608
git-svn-id: trunk@13988 -
2009-10-31 20:13:41 +00:00
marco
b5e361a4cb * TOleStream + TProxystream (Mantis 8376)
git-svn-id: trunk@13984 -
2009-10-30 18:27:26 +00:00
ivost
1e5b61c240 * added 3 new resources strings to describe library errors
git-svn-id: trunk@13974 -
2009-10-30 13:10:31 +00:00
ivost
bab5c5d8a3 * parameter "Separator" of function TryStrToDate was not passed to IntStrToDate
git-svn-id: trunk@13959 -
2009-10-26 17:34:07 +00:00
ivost
243e0ff3b5 * reverted r13949 because it's unnecessary test
git-svn-id: trunk@13954 -
2009-10-25 11:06:38 +00:00
ivost
d4d3227e77 * fixed CompareDate function. Only dates are compared now, ignoring time of day.
git-svn-id: trunk@13949 -
2009-10-24 20:53:00 +00:00
michael
89ec956733 * Patch from Mattias Gaertner to fix property overrides. (bug ID 14885)
git-svn-id: trunk@13939 -
2009-10-24 12:34:26 +00:00