Skip to content
Permalink
Browse files

FPC + ARC support

My first modifications of original OmniXML code to support FPC and ARC Delphi.
-> I tried to make as little changes as possible:

1) I replaced GpTextStream.pas and GpStreamWrapper.pas (that are Windows-only) with OTextReadWrite.pas (that is Lazarus and ARC enabled).
2) I made OmniXML_Dictionary.pas compatible with Lazarus.
3) I fixed a performance bottle neck in TXMLCustomList: the "FList: TInterfaceList" has horrible performance in Delphi prior to 2007 and Lazarus due to critical sections (that are not necessary in my opinion). I changed it to TList<IXMLNode> in D2009+ and to normal TList with manual reference counting for non-unicode Delphi. This little change made nodes create about 3-4 times faster in non-unicode Delphi.

Everything else is 1:1 the original OmniXML code so everybody can upgrade without any problems.
  • Loading branch information
on.pokorny@gmail.com
on.pokorny@gmail.com committed Dec 12, 2013
1 parent 82df0f0 commit 5e405ea0957df3e6192af7258015fdedd4d5d5ee
Showing with 3,287 additions and 1,798 deletions.
  1. +0 −273 GpStreamWrapper.pas
  2. +0 −1,240 GpTextStream.pas
  3. +382 −0 OBufferedStreams.pas
  4. +839 −0 OEncoding.pas
  5. +714 −0 OTextReadWrite.pas
  6. +1,019 −0 OWideSupp.pas
  7. +71 −0 OXml.inc
  8. +14 −8 OmniXML.inc
  9. +152 −256 OmniXML.pas
  10. +11 −1 OmniXMLConf.pas
  11. +6 −0 OmniXMLDatabase.pas
  12. +7 −3 OmniXMLPersistent.pas
  13. +5 −0 OmniXMLProperties.pas
  14. +6 −1 OmniXMLUtils.pas
  15. +6 −0 OmniXMLXPath.pas
  16. +30 −4 OmniXML_Dictionary.pas
  17. +6 −0 OmniXML_LookupTables.pas
  18. +6 −1 OmniXML_MSXML.pas
  19. +13 −11 OmniXML_Types.pas

This file was deleted.

0 comments on commit 5e405ea

Please sign in to comment.
You can’t perform that action at this time.