* greatly enhances clean performance over FSes with limited to no caching (networked file systems (eg. SSHFS), Amiga, etc)
* also an indentation fix
git-svn-id: trunk@25339 -
Format of saved data is changed as follows:
- Identification (start of file) changes from "BinBufDataset" (OLD version named 1.0) to "BinBufDataSet" (NEW version named 2.0)
- Just after Identification ("BinBufDataSet") is written one byte indicating version (for now it is 20 as 2.0)
- FieldDefs are saved in same format as in OLD format (nothing chages)
- Record header is saved in same format as in OLD format (nothing chages)
- Record data are saved field by field, where each field begins with 4 bytes indicating length of data, followed by data (here is used TField.AsBytes to get actual data)
Backward compatibility is keept in reading OLD format
When saving NEW format is always used
git-svn-id: trunk@25333 -
registry.pp, TRegistry:
* use FSysData to hold information whether we need to close the RootKey
winrec.inc, TRegistry:
+ add a TWinRegData type that holds the information whether the RootKey was explicitely opened by us
* SysRegCreate: allocate FSysData as PWinRegData
* SysRegFree: close the RootKey if necessary and free FSysData
+ RegistryConnect: implement for Win32/Win64; update RootKey only if RegConnectRegistry connects successfully, also the RootKey is now owned by us
* SetRootKey: update the RootKey only if it differs from previous value (avoids orphaning the key by doing a "reg.RootKey := reg.RootKey") and close the previous RootKey if it was owned by us
git-svn-id: trunk@25332 -
ncon.pas, tstringconstnode:
* buildderefimpl: don't build the deref if we don't need to
* derefimpl: do not try to resolve the deref if it wasn't stored at all
git-svn-id: trunk@25329 -
o does not use GOT
o enabled by default like for other Darwin platforms
- removed Darwin/ARM call stub support: no longer needed with current
Xcode versions (at least Xcode 4.2+), and we didn't support PIC
in them yet
git-svn-id: trunk@25325 -
This patch implements collation'loading at runtime. This reduce the final executable' size as the collation's data are now externaly stored. Note that It requires the external collation files to be shipped and the program to load the collations it needs using the "LoadCollation"/"RegisterCollation" procedure(s).
The external collation files are produced by "cldrparser" (while producing the static files). The root collation "ducet" 's external file is produced by "unihelper".
It is important to note that these files are endian specific :
* collation_*_be.bco for big endian systems
* collation_*_le.bco for little endian system.
The root collation should at be registered, be it staticaly by using the "unicodeducet" unit or dynamicaly by making a call sush as RegisterCollation(<collation dir>,'ducet').
It is possible, in the same application, to make use of static and dynamic.
git-svn-id: trunk@25295 -