Quellcode durchsuchen

* 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: trunk@16072 -
sergei vor 15 Jahren
Ursprung
Commit
594919cc70
1 geänderte Dateien mit 5 neuen und 3 gelöschten Zeilen
  1. 5 3
      packages/fcl-xml/src/dom.pp

+ 5 - 3
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