mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-01 23:19:39 +01:00
laz_writer: reduced temporary objects
git-svn-id: trunk@12111 -
This commit is contained in:
parent
2a4cf8b92f
commit
6a971cab15
@ -26,10 +26,10 @@
|
||||
</RunParams>
|
||||
<RequiredPackages Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="CodeTools"/>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="LCL"/>
|
||||
<PackageName Value="CodeTools"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="3">
|
||||
|
||||
@ -203,6 +203,8 @@ type
|
||||
function Release: LongInt; virtual;
|
||||
end;
|
||||
|
||||
{ TDOMNode }
|
||||
|
||||
TDOMNode = class
|
||||
protected
|
||||
FNodeName, FNodeValue: DOMString;
|
||||
@ -241,6 +243,7 @@ type
|
||||
function AppendChild(NewChild: TDOMNode): TDOMNode; virtual;
|
||||
function HasChildNodes: Boolean; virtual;
|
||||
function CloneNode(deep: Boolean): TDOMNode; overload;
|
||||
function IsEmpty: Boolean; virtual;
|
||||
|
||||
// Extensions to DOM interface:
|
||||
function CloneNode(deep: Boolean; ACloneOwner: TDOMDocument): TDOMNode; overload; virtual;
|
||||
@ -445,7 +448,7 @@ type
|
||||
function RemoveAttributeNode(OldAttr: TDOMAttr): TDOMAttr;
|
||||
// Free NodeList with TDOMNodeList.Release!
|
||||
function GetElementsByTagName(const name: DOMString): TDOMNodeList;
|
||||
function IsEmpty: Boolean;
|
||||
function IsEmpty: Boolean; override;
|
||||
procedure Normalize;
|
||||
|
||||
property AttribStrings[const Name: DOMString]: DOMString
|
||||
@ -728,6 +731,11 @@ begin
|
||||
Result:=CloneNode(deep, FOwnerDocument);
|
||||
end;
|
||||
|
||||
function TDOMNode.IsEmpty: Boolean;
|
||||
begin
|
||||
Result:=true;
|
||||
end;
|
||||
|
||||
function TDOMNode.CloneNode(deep: Boolean; ACloneOwner: TDOMDocument): TDOMNode;
|
||||
begin
|
||||
raise EDOMNotSupported.Create('CloneNode not implemented for ' + ClassName);
|
||||
|
||||
@ -248,17 +248,19 @@ begin
|
||||
wrtIndent;
|
||||
wrtChr('<');
|
||||
wrtStr(node.NodeName);
|
||||
for i := 0 to node.Attributes.Length - 1 do
|
||||
begin
|
||||
attr := node.Attributes.Item[i];
|
||||
wrtChr(' ');
|
||||
wrtStr(attr.NodeName);
|
||||
wrtChr('=');
|
||||
s := attr.NodeValue;
|
||||
// !!!: Replace special characters in "s" such as '&', '<', '>'
|
||||
wrtChr('"');
|
||||
ConvWrite(s, AttrSpecialChars, @AttrSpecialCharCallback);
|
||||
wrtChr('"');
|
||||
if not (node.IsEmpty) then begin
|
||||
for i := 0 to node.Attributes.Length - 1 do
|
||||
begin
|
||||
attr := node.Attributes.Item[i];
|
||||
wrtChr(' ');
|
||||
wrtStr(attr.NodeName);
|
||||
wrtChr('=');
|
||||
s := attr.NodeValue;
|
||||
// !!!: Replace special characters in "s" such as '&', '<', '>'
|
||||
wrtChr('"');
|
||||
ConvWrite(s, AttrSpecialChars, @AttrSpecialCharCallback);
|
||||
wrtChr('"');
|
||||
end;
|
||||
end;
|
||||
Child := node.FirstChild;
|
||||
if Child = nil then begin
|
||||
|
||||
Loading…
Reference in New Issue
Block a user