* Rewrote StripState to not use ReplacementArray. The memory usage of FSS was excessi...
authorTim Starling <tstarling@users.mediawiki.org>
Wed, 23 Feb 2011 06:58:15 +0000 (06:58 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Wed, 23 Feb 2011 06:58:15 +0000 (06:58 +0000)
commita20350dd319bf7dd49f9c69e57bf5ad3614b533c
treefbeaa57db6855d000cf346a2885071297e27cdf3
parentf17cf7ef0eff66f5286253eebe47d675769db7da
* Rewrote StripState to not use ReplacementArray. The memory usage of FSS was excessive when there were many (>10k) strip items. I used preg_replace_callback(), which is slower than strtr() in the simplest case, but much faster than it when the markers have different lengths, which they usually do.
* It was not necessary to preserve the $stripState->general->setPair() interface since it wasn't used by any extensions.
* Moved StripState to its own file.
* Refactored serialiseHalfParsedText() and unserialiseHalfParsedText() so that the bulk of the functionality is in the relevant modules, instead of using scary direct access to object member variables. Made it support the new StripState. It seemed like a lot of work to go to to support an "emergency optimisation" feature in Cite. Cite updates will be in a subsequent commit.
* Fixed spelling of serialiseHalfParsedText() and unserialiseHalfParsedText(), there is unavoidable interface breakage anyway, due to cache object versioning.
* Moved transparent tags to their own function, as requested in a fixme comment.
* Added documentation for markerSkipCallback().
* Removed OnlyIncludeReplacer, unused since MW 1.12.
includes/AutoLoader.php
includes/parser/LinkHolderArray.php
includes/parser/Parser.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/parser/StripState.php [new file with mode: 0644]