Commit Graph

1442 Commits

Author SHA1 Message Date
marco
4d9f1629d9 * removed a workaround for pre 2.6.0 fpdocs
git-svn-id: trunk@24294 -
2013-04-21 21:33:10 +00:00
paul
8acf9aadf8 rtl, utils: Fix cross-endian collation files generation by Inoussa OUEDRAOGO (issue #0024266)
git-svn-id: trunk@24252 -
2013-04-15 08:27:14 +00:00
michael
c47443e492 * Fix for 24274 by Laco
git-svn-id: trunk@24249 -
2013-04-15 07:41:42 +00:00
florian
c25f56fa64 + several pwidechar/unicode string functions added
git-svn-id: trunk@24212 -
2013-04-09 11:09:10 +00:00
michael
3f910197c6 * Patch from Laco to fix bug ID #24096
git-svn-id: trunk@24128 -
2013-04-02 11:23:57 +00:00
Jonas Maebe
25ebb36103 * catch invalid floating point operations in TextToFloat (mantis #24197)
git-svn-id: trunk@24105 -
2013-04-01 11:50:49 +00:00
svenbarth
3f79e75aaa Applied patch from Reinier Olislagers. Fix for Mantis #24159.
rtl/objpas/strutils.pp, ReplaceStr & ReplaceText:
  Correctly assign the result value

git-svn-id: trunk@24028 -
2013-03-28 10:08:42 +00:00
paul
c093297341 rtl: apply Inoussa patch to Unicode manager files (issue #0022909)
git-svn-id: trunk@24017 -
2013-03-27 00:55:37 +00:00
Jonas Maebe
7dfe1301c3 * fixed type in FloatToStrFIntl introduced in r23311 (mantis #24131)
git-svn-id: trunk@24013 -
2013-03-26 18:53:37 +00:00
michael
37ba6f9b27 * Fixed 23805
git-svn-id: trunk@23899 -
2013-03-17 17:00:39 +00:00
paul
8c76535014 rtl: add missing 4 _be collations (2 collations are still not generated)
git-svn-id: trunk@23820 -
2013-03-14 03:30:53 +00:00
paul
032b241c6b rtl: fpwidestring - fix length of UnicodeStrings after UTF8ToUnicode. UTF8ToUnicode returns length + 1 for zero byte which is not needed for UnicodeString.
git-svn-id: trunk@23800 -
2013-03-12 03:14:22 +00:00
paul
23c9578137 rtl: setup DefaultSystemCodepage when fpwidestring is included on unixes
git-svn-id: trunk@23768 -
2013-03-10 06:42:50 +00:00
paul
02e0269764 rtl: a patch to cleanup a fixes to key forming functions from Inoussa (mantis #0022909)
git-svn-id: trunk@23767 -
2013-03-10 06:27:03 +00:00
paul
7a0b112e56 rtl: add FPC Independent Unicode String Manager from Inoussa (mantis #0022909)
git-svn-id: trunk@23730 -
2013-03-08 15:23:20 +00:00
svenbarth
da7b24e242 Avoid multiple threadvar lookups when querying the current TThread. Inspired by Michael Schnell.
rtl/objpas/classes/classes.inc, TThread.GetCurrentThread:
	* instead of checking CurrentThreadVar and reading it again afterwards we read it first into Result and check this value; this way we have one read access in the normal case and one read and one write access in the worst case

git-svn-id: trunk@23706 -
2013-03-07 20:15:32 +00:00
paul
e549954de6 rtl:
* apply Inoussa changes to character.pas and related files (part of mantis #0022909)

git-svn-id: trunk@23657 -
2013-02-25 01:46:33 +00:00
svenbarth
db6385ef33 Added exception EObjectCheck for object reference check (runtime error 210).
rtl/objpas/sysconst.pp:
  + add resourcestring SObjectCheckError
rtl/objpas/sysutilh.inc:
  + add new Exception descendant EObjectCheck
rtl/objpas/sysutils.inc:
  + use EObjectCheck with message SObjectCheckError for runtime error 210

git-svn-id: trunk@23656 -
2013-02-24 22:22:38 +00:00
florian
b00ff8a4e0 * patch by Bart Broersma, simplify TStringList.InsertItem, resolves #23860
git-svn-id: trunk@23638 -
2013-02-20 21:36:02 +00:00
michael
f4c2ba9eb6 * Make sure that current method is removed from stack prior to executing it (bug ID #23629)
git-svn-id: trunk@23362 -
2013-01-11 08:42:40 +00:00
michael
7c8fcb63b7 * Changed DateTimeToTimestamp not to use Round()
git-svn-id: trunk@23337 -
2013-01-07 13:00:27 +00:00
michael
2a9e12c709 * Fixed rounding errors in DateTimeToTimeStamp, causing errors in conversions
git-svn-id: trunk@23334 -
2013-01-07 10:28:47 +00:00
michael
b55eb113a6 * Fixed bug ID #23464
git-svn-id: trunk@23328 -
2013-01-06 16:49:35 +00:00
florian
6363567fba * FloatToStrFIntl is used only internally so we can assume that Value is aligned
git-svn-id: trunk@23311 -
2013-01-04 19:13:28 +00:00
florian
8ee1445b81 * stripped trailing spaces
git-svn-id: trunk@23294 -
2013-01-02 10:50:32 +00:00
florian
82f20cedbd * make threading code dependend on feature switch
git-svn-id: trunk@23293 -
2013-01-02 10:48:29 +00:00
florian
0215f00490 * fix compilation of objpas if ansistrings are disabled as requested by Michael Ring on fpc-devel
git-svn-id: trunk@23256 -
2012-12-31 14:26:48 +00:00
svenbarth
70a7a09413 * use the correct thread ID when checking for the main thread
* ensure that the Exception reference is Nil when appending a synchronize entry to the synchronize queue

git-svn-id: trunk@23234 -
2012-12-27 23:36:16 +00:00
svenbarth
764f36a179 Extend TThread with (class) methods and (class) properties from Delphi 2007 and newer.
Especially for the introduction of the Queue method the internal Synchronize handling was modified. Instead of handling only one event there is now a queue of events which is walked completely when CheckSynchronize is called. Each entry in the queue can carry a PRTLEvent which will be signaled when the contained method has been executed and thus Synchronize methods can still be blocking.
Exceptions inside the queued methods are either handed back to the calling method for Synchronize events or raised directly (after leaving the queue in a valid state) to the caller of CheckSynchronize.

The way platform specific adjustments can be made to TThread was changed. Instead of implementing the Constructor and Destructor directly one now implements the methods SysCreate and SysDestroy which are called from the Constructor and Destructor respectively. All RTLs were adjusted for this and should be controlled by the platform maintainers for correct compilation (Unix works).

The new method NameThreadForDebugging has two overloaded variants: one with the thread name as AnsiString and one with the thread name as UnicodeString.
By default the AnsiString variant calls the UnicodeString variant and the latter needs to be implemented. This can be changed by defining THREADNAME_IS_ANSISTRING for a platform. Then the UnicodeString variant calls the AnsiString one and the AnsiString one needs to be implemented.

Also added was a global property CPUCount for the System unit. This property returns the number of virtual cores of the system.

New methods and functions that should be implemented per platform are:
System.GetCPUCount (default returns 1)
Classes.TThread.GetSystemTimes (default zeros the struct)
Classes.TThread.NameThreadForDebugging (default does nothing)

More detailed information about the added methods will be available in the feature announcement mail.

git-svn-id: trunk@23227 -
2012-12-27 16:16:17 +00:00
svenbarth
e914ec7f00 Add platform independant support for "GetTickCount" and "GetTickCount64" to unit "SysUtils". "GetTickCount" is declared as deprecated from the beginning and thus "GetTickCount64" should be used instead.
The default implementation of "GetTickCount" just uses the lower 32-Bit from the result of "GetTickCount64". 
The default implementation of "GetTickCount64" is based upon "Now" for systems that support a floating point unit (and thus "Now"). 
Other systems can define a "SysTimerTick" function which is used instead if "HAS_SYSTIMERTICK" is defined.

The Windows implementation of "GetTickCount" uses Windows' "GetTickCount" function. 
The implemenation of "GetTickCount64" checks whether the system is a Windows Vista or newer and then uses Windows' "GetTickCount64" function. Otherwise Windows' "GetTickCount" is used also.

The Unix implementation of "GetTickCount" is the default one. 
The "GetTickCount64" implementation uses "fpgettimeofday".

git-svn-id: trunk@23215 -
2012-12-23 16:12:57 +00:00
michael
11a531ab62 * Fixed bug #23477
git-svn-id: trunk@23135 -
2012-12-12 15:21:28 +00:00
Jonas Maebe
9804fd527b * don't add a thousands separator in FormatFloat if there are no digits
before it because the value is too small, regardless of what the format
   pattern sepcifies (patch by Bart Broersma, mantis #13076)

git-svn-id: trunk@23095 -
2012-12-02 16:57:41 +00:00
michael
66553a253e * Applied and expanded patch from Luiz Americo to implement faster notifyobservers (bug ID 23419)
git-svn-id: trunk@23089 -
2012-12-02 11:14:49 +00:00
michael
e3b48d6eb2 * Simplified observer/observed GUIDs, patch from Luiz Americo (Bug ID 23420)
git-svn-id: trunk@23088 -
2012-12-02 11:09:51 +00:00
michael
217679843e * IFPObserver methods made public
git-svn-id: trunk@23080 -
2012-11-29 13:28:11 +00:00
michael
b774bbb681 * Use sender when notifying observers
git-svn-id: trunk@23079 -
2012-11-29 13:22:51 +00:00
svenbarth
bb5dc545f8 rtl/objpas/fgl.pp:
Fix typo in comment; fixes Mantis #23352

git-svn-id: trunk@23036 -
2012-11-19 19:23:58 +00:00
sergei
186cbaaf18 * Ansistring versions of MkDir,ChDir,RmDir: make a full copy of argument string. This is necessary because underlying implementations can modify directory separators in argument, causing crash if argument resides in read-only memory. This is also consistent with shortstring variants of same procedures.
git-svn-id: trunk@23000 -
2012-11-16 18:27:55 +00:00
michael
4ecfde31e1 * Prevent Move from freeing an associated object if OwnsObjects=True (reported on sourceforge)
git-svn-id: trunk@22992 -
2012-11-16 11:04:44 +00:00
michael
a3f7a7fdb4 * Avoid overflow when reading from streams > 2gb
git-svn-id: trunk@22945 -
2012-11-06 23:41:49 +00:00
florian
39aef35bdc * pass not only exception address but also frame to raise:
if an address is passed the compiler cannot know a good 
  value for the frame so it passed nil and no stack trace is printed, resolves #12528

git-svn-id: trunk@22932 -
2012-11-04 20:40:21 +00:00
michael
9d6b4aa946 * Fix dayOfWeek for dates < 0 (bug ID #23144)
git-svn-id: trunk@22679 -
2012-10-17 07:15:01 +00:00
michael
6eade12d3f * Take care of Florian's remark that FList may be nil when constructor failed
git-svn-id: trunk@22593 -
2012-10-08 15:11:10 +00:00
michael
3cafdc2a58 * Fix from Luiz Americo to avoid crash when a freenotification is registered during destroy. (bug ID 23031)
git-svn-id: trunk@22589 -
2012-10-08 12:02:11 +00:00
michael
61fecf4562 * Patch from Luiz Americo to clean up tlist (bug ID 23024)
git-svn-id: trunk@22585 -
2012-10-08 11:01:39 +00:00
marco
5d42d3a53c * change make TBinaryObjectWriter.WriteStr public mantis #22973
Delphi seems to use .writestr also for shortstring only, so the 
   function is the same.

git-svn-id: trunk@22556 -
2012-10-06 10:06:55 +00:00
marco
a48aba60fb * fix for Delphi incompatible DelimitedText, Mantis #19610, big patch from Reinier Olislagers.
git-svn-id: trunk@22549 -
2012-10-05 16:56:09 +00:00
Jonas Maebe
b4971c72d3 * partial fix for mantis #22912 (waiting on clarification from Unicode
consortium for the character.pas unit)

git-svn-id: trunk@22494 -
2012-09-28 07:57:45 +00:00
Jonas Maebe
92064356f0 * prevent code page conversion in CharInSet(widechar,tsyscharset)
git-svn-id: trunk@22464 -
2012-09-26 20:46:19 +00:00
Jonas Maebe
349a682596 * corrected license header from GPL to LGPL + static linking exception like
the rest of the FPC RTL, after confirming with the original author that
    this is ok (mantis #22879)

git-svn-id: trunk@22413 -
2012-09-17 12:12:42 +00:00