From: Tim Starling Date: Thu, 23 Mar 2017 01:50:14 +0000 (+1100) Subject: RemexCompatMunger: fix a couple of memory leaks X-Git-Tag: 1.31.0-rc.0~3716^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=251b25d700dcaa7bca93864cb61ca4d719cfc6dd RemexCompatMunger: fix a couple of memory leaks Change-Id: I47578b3f73320e84a157417c288de97b5d26e18f --- diff --git a/includes/tidy/RemexCompatMunger.php b/includes/tidy/RemexCompatMunger.php index d5f5c281c2..dbcf568c05 100644 --- a/includes/tidy/RemexCompatMunger.php +++ b/includes/tidy/RemexCompatMunger.php @@ -229,7 +229,6 @@ class RemexCompatMunger implements TreeHandler { * @param integer $sourceStart * @param integer $sourceLength */ - public function insertElement( $preposition, $refElement, Element $element, $void, $sourceStart, $sourceLength ) { @@ -248,9 +247,10 @@ class RemexCompatMunger implements TreeHandler { $newParent = $this->serializer->getParentNode( $parent ); $parent = $newParent; $parentData = $parent->snData; + $pElement = $parentData->childPElement; $parentData->childPElement = null; $newRef = $refElement->userData; - // FIXME cannot call endTag() since we don't have an Element + $this->endTag( $pElement, $sourceStart, 0 ); } elseif ( $under && $parentData->isSplittable && (bool)$parentData->ancestorPNode !== $inline ) { @@ -425,7 +425,13 @@ class RemexCompatMunger implements TreeHandler { } public function endTag( Element $element, $sourceStart, $sourceLength ) { + $data = $element->userData->snData; + if ( $data->childPElement ) { + $this->endTag( $data->childPElement, $sourceStart, 0 ); + } $this->serializer->endTag( $element, $sourceStart, $sourceLength ); + $element->userData->snData = null; + $element->userData = null; } public function doctype( $name, $public, $system, $quirks, $sourceStart, $sourceLength ) {