From 3dcd3d39ec34a0804d11e8e8c55ea152763384a7 Mon Sep 17 00:00:00 2001 From: sergei Date: Fri, 1 Oct 2010 11:05:30 +0000 Subject: * dom.pp, fixed TDOMText.SplitText() to use custom allocation, so newly created node won't leak if initial node has no parent . git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16072 3ad0048d-3df7-0310-abae-a5850022a9f2 --- packages/fcl-xml/src/dom.pp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/fcl-xml/src/dom.pp b/packages/fcl-xml/src/dom.pp index ca02cec40c..2414075022 100644 --- a/packages/fcl-xml/src/dom.pp +++ b/packages/fcl-xml/src/dom.pp @@ -3087,13 +3087,15 @@ begin end; function TDOMText.SplitText(offset: LongWord): TDOMText; +var + L: LongWord; begin Changing; - if offset > Length then + L := Length; + if offset > L then raise EDOMIndexSize.Create('Text.SplitText'); - Result := TDOMText.Create(FOwnerDocument); - Result.FNodeValue := Copy(FNodeValue, offset + 1, Length); + Result := FOwnerDocument.CreateTextNodeBuf(@FNodeValue[offset+1], L-offset, False); Result.FFlags := FFlags * [nfIgnorableWS]; FNodeValue := Copy(FNodeValue, 1, offset); if Assigned(FParentNode) then -- cgit v1.2.1