Permalink
Switch branches/tags
Nothing to show
Commits on Apr 14, 2017
Commits on Mar 29, 2017
  1. Merge pull request #17 from gabr42/bugfix-dictionary-resize

    mremec committed Mar 29, 2017
    ! dictionary resize was called twice in a row
Commits on Mar 22, 2017
  1. ! dictionary resize was called twice in a row

    gabr42 committed Mar 22, 2017
    test case:
    
    dic := TDictionary.Create;
    try
    for i := 1 to 63 do
    dic.Add(IntToStr(i));
    // next two calls will both trigger Resize
    dic.Add('64');
    dic.Add('65');
    for i := 66 to 127 do
    dic.Add(IntToStr(i));
    // next two calls will both trigger Resize
    dic.Add('128');
    dic.Add('129');
    finally FreeAndNil(dic); end;
Commits on Dec 15, 2016
  1. Merge pull request #15 from gabr42/bugfix-selectnode

    mremec committed Dec 15, 2016
    fixed SelectNode, added XMLLoadFromFile overload
Commits on Dec 14, 2016
  1. fixed SelectNode, added XMLLoadFromFile overload

    gabr42 committed Dec 14, 2016
    ! Fixed SelectNode when names of parent and child node are the same.
    + Added XMLLoadFromFile overload returning error message.
Commits on Oct 20, 2016
  1. Merge pull request #14 from the-Arioch/master

    mremec committed Oct 20, 2016
    fixes, see your tracker
Commits on Oct 3, 2016
  1. Speeding up iXMLNode.NextSibling/PrevSibling

    the-Arioch committed Oct 3, 2016
    Got quite a nasty example: Excel XML-SS file with some worksheet having up to 16K (sic!) invisible columns.
    On AMD Phenom2-X4-965 machine (3.4 GHz) scanning of a specific worksheet into the TStringGrid took:
    1) 37,6 seconds for .NextSibling/PrevSibling loops with old "linear search" implementations
    2) 0,33 secs for index-based loops
    3) 0,41 secs for interim siblings-caching .NextSibling/PrevSibling at +12 bytes per node....
            But OmniXML already consumes 25% more memory than TXMlDocument/MSXML
    4) 0,55 secs for index-caching .NextSibling/PrevSibling at +4 bytes per node....
  2. Speeding up iXMLNode.NextSibling/PrevSibling

    the-Arioch committed Oct 3, 2016
    Got quite a nasty example: Excel XML-SS file with some worksheet having up to 16K (sic!) invisible columns.
    On AMD Phenom2-X4-965 machine (3.4 GHz) scanning of a specific worksheet into the TStringGrid took:
    1) 37,6 seconds for .NextSibling/PrevSibling loops with old "linear search" implementations
    2) 0,33 secs for index-based loops
    3) 0,41 secs for new caching .NextSibling/PrevSibling
    
    However +12 bytes per node....
Commits on Sep 30, 2016
Commits on Jul 20, 2016
Commits on Jun 11, 2016
  1. Create README.md

    mremec committed Jun 11, 2016
Commits on Feb 3, 2016
  1. * Improved filter processor

    mremec committed Feb 3, 2016
    Improved filter processor to support consecutive filters, such as:
    
    /SubtitlerStatusInfo/Status/Decoders/Item[Index="1"][Initialized="yes"][InputPresent="yes"]
Commits on Oct 16, 2014
  1. (back to rev 22) sorry, I did something wrong with my SVN client...

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Oct 16, 2014
  2. No commit message

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Oct 16, 2014
Commits on Mar 27, 2014
  1. ! Rewind stream.

    mremec
    mremec committed Mar 27, 2014
Commits on Mar 21, 2014
  1. + Compiler defines to ensure valid library suffix up to Delphi XE5.

    mremec
    mremec committed Mar 21, 2014
    * Adjusted package content to new units.
Commits on Mar 20, 2014
  1. - OXmlLng.pas was missing in commit 18, added.

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Mar 20, 2014
    - small changes in OTextReadWrite.pas (more intuitive default encoding behaviour).
Commits on Feb 26, 2014
  1. D2009 + D2010 compatibility.

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Feb 26, 2014
    OEncoding.pas failed to compile under Delphi 2009 and 2010 due to missing functionality.
Commits on Feb 21, 2014
  1. Small code refactoring of some of my units.

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Feb 21, 2014
Commits on Feb 11, 2014
  1. Just a small code reduction - deleted parts that are not needed any m…

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Feb 11, 2014
    …ore.
Commits on Jan 31, 2014
  1. TXMLParseError / IXMLParseError bug fix:

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Jan 31, 2014
      - Important: the behaviour of TXMLParseError had to be changed slightly:
        -> added new property SrcTextPos which determines the XML error character position of SrcText.
        -> SrcText is not the current line until the error any more (because the whole current line doesn't have to be available at the position of error due to buffered reading - not all streams support seeking!). 
        -> SrcText is now a part before and after the XML error in the current line:
             E.g.: "t_name>Smith &amp; Jones &#x2r1;</last_n"
                   "-----------------------------^"  <- the position of the error character is saved in SrcTextPos
        -> please see the demo\ErrorInfo TfMain.bTestClick procedure
           * Add(StringOfChar(' ', 9) + StringOfChar('-', xmlDoc.ParseError.LinePos - 1) + '^');
           had to be replaced with:
           * Add(StringOfChar(' ', 9) + StringOfChar('-', xmlDoc.ParseError.SrcTextPos - 1) + '^');
    
    + Some name spaces / unit scope names added.
    + Faster optimized OTextReadWrite.pas and OBufferedStreams.pas.
Commits on Dec 12, 2013
  1. FPC + ARC support

    on.pokorny@gmail.com
    on.pokorny@gmail.com committed Dec 12, 2013
    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.
  2. + doc

    gabr42@gmail.com
    gabr42@gmail.com committed Dec 12, 2013
  3. + added method SetNodeAttrs

    gabr42@gmail.com
    gabr42@gmail.com committed Dec 12, 2013
  4. + can be compiled with /dNOVCL which will remove Font persistency sup…

    gabr42@gmail.com
    gabr42@gmail.com committed Dec 12, 2013
    …port
Commits on May 6, 2013
  1. ! fixed a bug in CDATA parser

    gabr42@gmail.com
    gabr42@gmail.com committed May 6, 2013
Commits on May 2, 2013
  1. * Code reformatting.

    mremec
    mremec committed May 2, 2013
  2. * EncodeText should use character reference format for non-printable …

    mremec
    mremec committed May 2, 2013
    …characters.