Memory leak occurs when some node is appended to the entity reference node
Rabi Narayan Sahoo <[email protected]> Fri, 28 Mar 2008 17:06:17 +0530
| Newsgroups | gmane.comp.gnome.gdome |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--===============0076723003==
Content-type: multipart/alternative;
boundary="Boundary_(ID_wMwz3BDGED20gleZh+T7fw)"
This is a multi-part message in MIME format.
--Boundary_(ID_wMwz3BDGED20gleZh+T7fw)
Content-type: text/plain; charset=us-ascii
Content-transfer-encoding: 7BIT
Hi
According to DOM specification (2.0) an entity reference node can have
following nodes as its child "Element, ProcessingInstruction, Comment, Text,
CDATASection, EntityReference."
And current Gdome implementation also allows us to append a child to the
entity reference node.
Consider the following scenario-
I am creating a document from scratch I create an entity reference node and
add a text node as its child and finally append that entity reference node
to the root element. Now when I will save the tree to a File it will simply
shows an entity reference on the doc. Hence appending the child has no
effect. After the entire Tree is freed there is a memory leak as the text
node appended to the entity is not freed. It's because Gdome uses the Libxml
function XmlFreeDoc () to free the document tree. Now inside xmlFreeDoc ()
xmlFreeNodeList () is called to free the children list of doc. In side this
function the node type is checked before freeing the child list. If it is of
entity reference node then its children are not freed which causes the
memory leak in this scenario.
As appending a child node to ER is of no use can we just make ER node
as read-only so that it can't be modified any way.
Thanks & Regards
Rabi
--Boundary_(ID_wMwz3BDGED20gleZh+T7fw)
Content-type: text/html; charset=us-ascii
Content-transfer-encoding: 7BIT
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:SimHei;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:KaiTi_GB2312;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"\@SimHei";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"\@KaiTi_GB2312";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:10.0pt;
margin-bottom:.0001pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:0in;
mso-para-margin-left:2.0gd;
mso-para-margin-bottom:.0001pt;
line-height:150%;
text-autospace:none;
font-size:10.5pt;
font-family:"Times New Roman";}
h1
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:21.55pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-21.55pt;
page-break-after:avoid;
mso-list:l10 level1 lfo35;
font-size:16.0pt;
font-family:Arial;}
h2
{margin-top:12.0pt;
margin-right:0in;
margin-bottom:12.0pt;
margin-left:.4in;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-.4in;
page-break-after:avoid;
mso-list:l10 level2 lfo35;
font-size:12.0pt;
font-family:Arial;
font-weight:normal;}
h3
{margin-top:13.0pt;
margin-right:0in;
margin-bottom:13.0pt;
margin-left:.5in;
mso-para-margin-top:13.0pt;
mso-para-margin-right:0in;
mso-para-margin-bottom:13.0pt;
mso-para-margin-left:2.0gd;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-.5in;
line-height:173%;
page-break-after:avoid;
mso-list:l10 level3 lfo35;
font-size:12.0pt;
font-family:Arial;
font-weight:normal;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0in;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
layout-grid-mode:char;
font-size:9.0pt;
font-family:Arial;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0in;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:Arial;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p.Table, li.Table, div.Table
{margin-top:5.0pt;
margin-right:0in;
margin-bottom:0in;
margin-left:0in;
margin-bottom:.0001pt;
mso-para-margin-top:1.0gd;
mso-para-margin-right:0in;
mso-para-margin-bottom:0in;
mso-para-margin-left:0in;
mso-para-margin-bottom:.0001pt;
text-align:center;
text-indent:0in;
mso-list:l7 level9 lfo5;
font-size:9.0pt;
font-family:Arial;}
p.TableText, li.TableText, div.TableText
{margin:0in;
margin-bottom:.0001pt;
font-size:10.5pt;
font-family:Arial;}
p.TableHeader, li.TableHeader, div.TableHeader
{margin:0in;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:Arial;
font-weight:bold;}
p.FigureStyle, li.FigureStyle, div.FigureStyle
{margin-top:4.0pt;
margin-right:0in;
margin-bottom:4.0pt;
margin-left:0in;
text-align:center;
line-height:150%;
page-break-after:avoid;
text-autospace:none;
font-size:10.5pt;
font-family:"Times New Roman";}
p.DocumentTitle, li.DocumentTitle, div.DocumentTitle
{margin-top:15.0pt;
margin-right:0in;
margin-bottom:15.0pt;
margin-left:0in;
text-align:center;
line-height:150%;
text-autospace:none;
font-size:18.0pt;
font-family:Arial;}
p.NotesHeader, li.NotesHeader, div.NotesHeader
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:10.0pt;
margin-bottom:.0001pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:0in;
mso-para-margin-left:2.0gd;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
line-height:150%;
text-autospace:none;
border:none;
padding:0in;
font-size:9.0pt;
font-family:Arial;}
p.NotesText, li.NotesText, div.NotesText
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:10.0pt;
margin-bottom:.0001pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:0in;
mso-para-margin-left:2.0gd;
mso-para-margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:.25in;
line-height:150%;
text-autospace:none;
border:none;
padding:0in;
font-size:9.0pt;
font-family:Arial;}
p.CompilingAdvice, li.CompilingAdvice, div.CompilingAdvice
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:10.0pt;
margin-bottom:.0001pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:0in;
mso-para-margin-left:2.0gd;
mso-para-margin-bottom:.0001pt;
line-height:150%;
text-autospace:none;
font-size:10.5pt;
font-family:Arial;
color:blue;
font-style:italic;}
span.EmailStyle28
{mso-style-type:personal-compose;
font-family:Arial;
color:windowtext;}
p.Figure, li.Figure, div.Figure
{margin:0in;
margin-bottom:.0001pt;
text-align:center;
text-indent:0in;
line-height:150%;
mso-list:l7 level8 lfo5;
text-autospace:none;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{mso-endnote-separator:url("cid:header.htm\@01C890F6.08D91C60") es;
mso-endnote-continuation-separator:url("cid:header.htm\@01C890F6.08D91C60") ecs;}
@page Section1
{size:595.3pt 841.9pt;
margin:1.0in 1.25in 1.0in 1.25in;
mso-footer:url("cid:header.htm\@01C890F6.08D91C60") f1;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:171800355;
mso-list-template-ids:-1278163850;}
@list l0:level1
{mso-level-text:%1;
mso-level-tab-stop:.3in;
mso-level-number-position:left;
margin-left:.3in;
text-indent:-.3in;}
@list l0:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:.4in;
mso-level-number-position:left;
margin-left:.4in;
text-indent:-.4in;}
@list l0:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;}
@list l0:level4
{mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l0:level5
{mso-level-text:%5\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l0:level6
{mso-level-number-format:alpha-lower;
mso-level-text:%6\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l0:level7
{mso-level-number-format:roman-lower;
mso-level-text:%7;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l0:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l0:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:1.1in;
mso-level-number-position:left;
margin-left:1.1in;
text-indent:-1.1in;}
@list l1
{mso-list-id:191647984;
mso-list-template-ids:345692754;}
@list l1:level1
{mso-level-number-format:alpha-upper;
mso-level-text:\9644\5F55%1;
mso-level-tab-stop:64.15pt;
mso-level-number-position:left;
margin-left:64.15pt;
text-indent:-.3in;}
@list l1:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:71.35pt;
mso-level-number-position:left;
margin-left:71.35pt;
text-indent:-.4in;}
@list l1:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:78.55pt;
mso-level-number-position:left;
margin-left:78.55pt;
text-indent:-.5in;}
@list l1:level4
{mso-level-tab-stop:70.9pt;
mso-level-number-position:left;
margin-left:89.35pt;
text-indent:-34.0pt;}
@list l1:level5
{mso-level-text:%5\FF09;
mso-level-tab-stop:70.9pt;
mso-level-number-position:left;
margin-left:89.35pt;
text-indent:-34.0pt;}
@list l1:level6
{mso-level-number-format:alpha-lower;
mso-level-text:%6\FF09;
mso-level-tab-stop:70.9pt;
mso-level-number-position:left;
margin-left:89.35pt;
text-indent:-34.0pt;}
@list l1:level7
{mso-level-number-format:roman-lower;
mso-level-text:%7;
mso-level-tab-stop:70.9pt;
mso-level-number-position:left;
margin-left:89.35pt;
text-indent:-34.0pt;}
@list l1:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:114.55pt;
mso-level-number-position:left;
margin-left:114.55pt;
text-indent:-1.0in;}
@list l1:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:121.75pt;
mso-level-number-position:left;
margin-left:121.75pt;
text-indent:-1.1in;}
@list l2
{mso-list-id:541409008;
mso-list-template-ids:-249166292;}
@list l2:level1
{mso-level-number-format:alpha-upper;
mso-level-text:\9644\5F55%1;
mso-level-tab-stop:.3in;
mso-level-number-position:left;
margin-left:.3in;
text-indent:-.3in;}
@list l2:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:.4in;
mso-level-number-position:left;
margin-left:.4in;
text-indent:-.4in;}
@list l2:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;}
@list l2:level4
{mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l2:level5
{mso-level-text:%5\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l2:level6
{mso-level-number-format:alpha-lower;
mso-level-text:%6\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l2:level7
{mso-level-number-format:roman-lower;
mso-level-text:%7;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l2:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l2:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:1.1in;
mso-level-number-position:left;
margin-left:1.1in;
text-indent:-1.1in;}
@list l3
{mso-list-id:731736200;
mso-list-template-ids:67698717;}
@list l3:level1
{mso-level-text:%1;
mso-level-tab-stop:21.25pt;
mso-level-number-position:left;
margin-left:21.25pt;
text-indent:-21.25pt;}
@list l3:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:57.25pt;
mso-level-number-position:left;
margin-left:49.6pt;
text-indent:-28.35pt;}
@list l3:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:96.55pt;
mso-level-number-position:left;
margin-left:70.9pt;
text-indent:-28.35pt;}
@list l3:level4
{mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:153.8pt;
mso-level-number-position:left;
margin-left:99.2pt;
text-indent:-35.4pt;}
@list l3:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:193.05pt;
mso-level-number-position:left;
margin-left:127.55pt;
text-indent:-42.5pt;}
@list l3:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:232.3pt;
mso-level-number-position:left;
margin-left:163.0pt;
text-indent:-56.7pt;}
@list l3:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:271.55pt;
mso-level-number-position:left;
margin-left:191.35pt;
text-indent:-63.8pt;}
@list l3:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:310.8pt;
mso-level-number-position:left;
margin-left:219.7pt;
text-indent:-70.9pt;}
@list l3:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:350.1pt;
mso-level-number-position:left;
margin-left:255.1pt;
text-indent:-85.0pt;}
@list l4
{mso-list-id:818422186;
mso-list-template-ids:1344984950;}
@list l4:level1
{mso-level-text:%1;
mso-level-tab-stop:.3in;
mso-level-number-position:left;
margin-left:.3in;
text-indent:-.3in;}
@list l4:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:.4in;
mso-level-number-position:left;
margin-left:.4in;
text-indent:-.4in;}
@list l4:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;}
@list l4:level4
{mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l4:level5
{mso-level-text:%5\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l4:level6
{mso-level-number-format:alpha-lower;
mso-level-text:%6\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l4:level7
{mso-level-number-format:roman-lower;
mso-level-text:%7;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l4:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l4:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:1.1in;
mso-level-number-position:left;
margin-left:1.1in;
text-indent:-1.1in;}
@list l5
{mso-list-id:838886720;
mso-list-template-ids:-819953982;}
@list l5:level1
{mso-level-text:%1;
mso-level-tab-stop:.3in;
mso-level-number-position:left;
margin-left:.3in;
text-indent:-.3in;
mso-ansi-font-size:18.0pt;
mso-bidi-font-size:18.0pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:.4in;
mso-level-number-position:left;
margin-left:.4in;
text-indent:-.4in;
mso-ansi-font-size:15.0pt;
mso-bidi-font-size:15.0pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level4
{mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level5
{mso-level-text:%5\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level6
{mso-level-number-format:alpha-lower;
mso-level-text:%6\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level7
{mso-level-number-format:roman-lower;
mso-level-text:%7;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;
mso-ansi-font-size:9.0pt;
mso-bidi-font-size:9.0pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l5:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:1.1in;
mso-level-number-position:left;
margin-left:1.1in;
text-indent:-1.1in;
mso-ansi-font-size:9.0pt;
mso-bidi-font-size:9.0pt;
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l6
{mso-list-id:942373150;
mso-list-template-ids:67698717;}
@list l6:level1
{mso-level-text:%1;
mso-level-tab-stop:21.25pt;
mso-level-number-position:left;
margin-left:21.25pt;
text-indent:-21.25pt;}
@list l6:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:57.25pt;
mso-level-number-position:left;
margin-left:49.6pt;
text-indent:-28.35pt;}
@list l6:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:96.55pt;
mso-level-number-position:left;
margin-left:70.9pt;
text-indent:-28.35pt;}
@list l6:level4
{mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:135.8pt;
mso-level-number-position:left;
margin-left:99.2pt;
text-indent:-35.4pt;}
@list l6:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:175.05pt;
mso-level-number-position:left;
margin-left:127.55pt;
text-indent:-42.5pt;}
@list l6:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:214.3pt;
mso-level-number-position:left;
margin-left:163.0pt;
text-indent:-56.7pt;}
@list l6:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:253.55pt;
mso-level-number-position:left;
margin-left:191.35pt;
text-indent:-63.8pt;}
@list l6:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:292.8pt;
mso-level-number-position:left;
margin-left:219.7pt;
text-indent:-70.9pt;}
@list l6:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:332.1pt;
mso-level-number-position:left;
margin-left:255.1pt;
text-indent:-85.0pt;}
@list l7
{mso-list-id:1123964682;
mso-list-template-ids:548200814;}
@list l7:level1
{mso-level-suffix:none;
mso-level-text:"%1 ";
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:0in;
mso-ansi-font-size:18.0pt;
mso-bidi-font-size:18.0pt;
font-family:Arial;
mso-fareast-font-family:SimHei;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level2
{mso-level-suffix:none;
mso-level-text:"%1\.%2 ";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.5in;
text-indent:0in;
mso-ansi-font-size:15.0pt;
mso-bidi-font-size:15.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level3
{mso-level-suffix:none;
mso-level-text:"%1\.%2\.%3 ";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.5in;
text-indent:0in;
mso-ansi-font-size:12.0pt;
mso-bidi-font-size:12.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level4
{mso-level-suffix:none;
mso-level-text:"%1\.%2\.%3\.%4 ";
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.5in;
text-indent:0in;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level5
{mso-level-tab-stop:92.7pt;
mso-level-number-position:left;
margin-left:92.7pt;
text-indent:-15.6pt;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level6
{mso-level-text:"%6\)";
mso-level-tab-stop:92.7pt;
mso-level-number-position:left;
margin-left:92.7pt;
text-indent:-15.6pt;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level7
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:92.7pt;
mso-level-number-position:left;
margin-left:92.7pt;
text-indent:-15.6pt;
mso-ansi-font-size:10.5pt;
mso-bidi-font-size:10.5pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level8
{mso-level-reset-level:level1;
mso-level-style-link:Figure;
mso-level-suffix:space;
mso-level-text:Figure%8;
mso-level-tab-stop:none;
mso-level-number-position:center;
margin-left:.5in;
text-indent:0in;
mso-ansi-font-size:9.0pt;
mso-bidi-font-size:9.0pt;
font-family:Arial;
mso-fareast-font-family:SimHei;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l7:level9
{mso-level-reset-level:level1;
mso-level-style-link:Table;
mso-level-suffix:space;
mso-level-text:Table%9;
mso-level-tab-stop:none;
mso-level-number-position:center;
margin-left:.5in;
text-indent:0in;
mso-ansi-font-size:9.0pt;
mso-bidi-font-size:9.0pt;
font-family:Arial;
mso-fareast-font-family:SimHei;
mso-bidi-font-family:"Times New Roman";
mso-ansi-font-weight:normal;
mso-ansi-font-style:normal;}
@list l8
{mso-list-id:1380013528;
mso-list-template-ids:-1435872280;}
@list l8:level1
{mso-level-number-format:none;
mso-level-text:"\9644\5F55A ";
mso-level-tab-stop:21.25pt;
mso-level-number-position:left;
margin-left:21.25pt;
text-indent:-21.25pt;}
@list l8:level2
{mso-level-text:"A\.%2";
mso-level-tab-stop:49.6pt;
mso-level-number-position:left;
margin-left:49.6pt;
text-indent:-28.35pt;}
@list l8:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:70.9pt;
mso-level-number-position:left;
margin-left:70.9pt;
text-indent:-28.35pt;}
@list l8:level4
{mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:99.2pt;
mso-level-number-position:left;
margin-left:99.2pt;
text-indent:-35.4pt;}
@list l8:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:127.55pt;
mso-level-number-position:left;
margin-left:127.55pt;
text-indent:-42.5pt;}
@list l8:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:163.0pt;
mso-level-number-position:left;
margin-left:163.0pt;
text-indent:-56.7pt;}
@list l8:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:191.35pt;
mso-level-number-position:left;
margin-left:191.35pt;
text-indent:-63.8pt;}
@list l8:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:219.7pt;
mso-level-number-position:left;
margin-left:219.7pt;
text-indent:-70.9pt;}
@list l8:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:255.1pt;
mso-level-number-position:left;
margin-left:255.1pt;
text-indent:-85.0pt;}
@list l9
{mso-list-id:1425803385;
mso-list-template-ids:67698717;}
@list l9:level1
{mso-level-text:%1;
mso-level-tab-stop:21.25pt;
mso-level-number-position:left;
margin-left:21.25pt;
text-indent:-21.25pt;}
@list l9:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:57.25pt;
mso-level-number-position:left;
margin-left:49.6pt;
text-indent:-28.35pt;}
@list l9:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:96.55pt;
mso-level-number-position:left;
margin-left:70.9pt;
text-indent:-28.35pt;}
@list l9:level4
{mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:153.8pt;
mso-level-number-position:left;
margin-left:99.2pt;
text-indent:-35.4pt;}
@list l9:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:193.05pt;
mso-level-number-position:left;
margin-left:127.55pt;
text-indent:-42.5pt;}
@list l9:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:232.3pt;
mso-level-number-position:left;
margin-left:163.0pt;
text-indent:-56.7pt;}
@list l9:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:271.55pt;
mso-level-number-position:left;
margin-left:191.35pt;
text-indent:-63.8pt;}
@list l9:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:310.8pt;
mso-level-number-position:left;
margin-left:219.7pt;
text-indent:-70.9pt;}
@list l9:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:350.1pt;
mso-level-number-position:left;
margin-left:255.1pt;
text-indent:-85.0pt;}
@list l10
{mso-list-id:1666475049;
mso-list-template-ids:-28945502;}
@list l10:level1
{mso-level-style-link:"Heading 1";
mso-level-text:%1;
mso-level-tab-stop:.3in;
mso-level-number-position:left;
margin-left:.3in;
text-indent:-.3in;}
@list l10:level2
{mso-level-style-link:"Heading 2";
mso-level-text:"%1\.%2";
mso-level-tab-stop:.4in;
mso-level-number-position:left;
margin-left:.4in;
text-indent:-.4in;}
@list l10:level3
{mso-level-style-link:"Heading 3";
mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;}
@list l10:level4
{mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l10:level5
{mso-level-text:%5\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l10:level6
{mso-level-number-format:alpha-lower;
mso-level-text:%6\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l10:level7
{mso-level-number-format:roman-lower;
mso-level-text:%7;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l10:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l10:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:1.1in;
mso-level-number-position:left;
margin-left:1.1in;
text-indent:-1.1in;}
@list l11
{mso-list-id:1916042858;
mso-list-template-ids:-648263936;}
@list l11:level1
{mso-level-number-format:alpha-upper;
mso-level-text:\9644\5F55%1;
mso-level-tab-stop:.3in;
mso-level-number-position:left;
margin-left:.3in;
text-indent:-.3in;}
@list l11:level2
{mso-level-text:"%1\.%2";
mso-level-tab-stop:.4in;
mso-level-number-position:left;
margin-left:.4in;
text-indent:-.4in;}
@list l11:level3
{mso-level-text:"%1\.%2\.%3";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
margin-left:.5in;
text-indent:-.5in;}
@list l11:level4
{mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l11:level5
{mso-level-text:%5\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l11:level6
{mso-level-number-format:alpha-lower;
mso-level-text:%6\FF09;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l11:level7
{mso-level-number-format:roman-lower;
mso-level-text:%7;
mso-level-tab-stop:28.35pt;
mso-level-number-position:left;
margin-left:.65in;
text-indent:-34.0pt;}
@list l11:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
margin-left:1.0in;
text-indent:-1.0in;}
@list l11:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:1.1in;
mso-level-number-position:left;
margin-left:1.1in;
text-indent:-1.1in;}
@list l12
{mso-list-id:2114861838;
mso-list-template-ids:-433129230;}
@list l12:level1
{mso-level-number-format:none;
mso-level-text:"\9644\5F55A ";
mso-level-tab-stop:21.25pt;
mso-level-number-position:left;
margin-left:21.25pt;
text-indent:-21.25pt;}
@list l12:level2
{mso-level-text:"A\.%2";
mso-level-tab-stop:49.6pt;
mso-level-number-position:left;
margin-left:49.6pt;
text-indent:-28.35pt;}
@list l12:level3
{mso-level-text:"%1A\.%2\.%3";
mso-level-tab-stop:70.9pt;
mso-level-number-position:left;
margin-left:70.9pt;
text-indent:-28.35pt;}
@list l12:level4
{mso-level-text:"%1\.%2\.%3\.%4";
mso-level-tab-stop:99.2pt;
mso-level-number-position:left;
margin-left:99.2pt;
text-indent:-35.4pt;}
@list l12:level5
{mso-level-text:"%1\.%2\.%3\.%4\.%5";
mso-level-tab-stop:127.55pt;
mso-level-number-position:left;
margin-left:127.55pt;
text-indent:-42.5pt;}
@list l12:level6
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
mso-level-tab-stop:163.0pt;
mso-level-number-position:left;
margin-left:163.0pt;
text-indent:-56.7pt;}
@list l12:level7
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
mso-level-tab-stop:191.35pt;
mso-level-number-position:left;
margin-left:191.35pt;
text-indent:-63.8pt;}
@list l12:level8
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
mso-level-tab-stop:219.7pt;
mso-level-number-position:left;
margin-left:219.7pt;
text-indent:-70.9pt;}
@list l12:level9
{mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
mso-level-tab-stop:255.1pt;
mso-level-number-position:left;
margin-left:255.1pt;
text-indent:-85.0pt;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="3074" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="2" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple style='text-justify-trim:punctuation'>
<div class=Section1 style='layout-grid:15.6pt'>
<p class=MsoNormal style='margin-left:21.0pt'><font size=2 face=Arial><span
style='font-size:10.0pt;line-height:150%;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;text-align:justify;text-justify:
inter-ideograph'><font size=2 face=Arial><span style='font-size:10.0pt;
line-height:150%;font-family:Arial'>Hi<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;text-align:justify;text-justify:
inter-ideograph'><font size=2 face=Arial><span style='font-size:10.0pt;
line-height:150%;font-family:Arial'>According to DOM specification (2.0) an
entity reference node can have following nodes as its child <b><span
style='font-weight:bold'>“Element, ProcessingInstruction, Comment, Text,
CDATASection, EntityReference</span></b>.”<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;text-align:justify;text-justify:
inter-ideograph'><font size=2 face=Arial><span style='font-size:10.0pt;
line-height:150%;font-family:Arial'>And current Gdome implementation also
allows us to append a child to the entity reference node.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;text-align:justify;text-justify:
inter-ideograph'><b><font size=2 face=Arial><span style='font-size:10.0pt;
line-height:150%;font-family:Arial;font-weight:bold'>Consider the following scenario-
<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='margin-left:21.0pt;text-align:justify;text-justify:
inter-ideograph'><font size=2 face=Arial><span style='font-size:10.0pt;
line-height:150%;font-family:Arial'>I am creating a document from scratch I create
an entity reference node and add a text node as its child and finally append
that entity reference node to the root element. Now when I will save the
tree to a File it will simply shows an entity reference on the doc. Hence
appending the child has no effect. After the entire Tree is freed there is a
memory leak as the text node appended to the entity is not freed. It’s
because Gdome uses the Libxml function XmlFreeDoc () to free the document tree.
Now inside xmlFreeDoc () xmlFreeNodeList () is called to free the children list
of doc. In side this function the node type is checked before freeing the child
list. If it is of entity reference node then its children are not freed which
causes the memory leak in this scenario.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:0in;text-align:justify;text-justify:inter-ideograph'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> As appending a child node to ER is of no use
can we just make ER node as read-only so that it can’t be modified any
way.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt'><strong><b><font size=2
color=blue face=Arial><span style='font-size:10.0pt;line-height:150%;
font-family:Arial;color:blue'>Thanks & Regards<o:p></o:p></span></font></b></strong></p>
<p class=MsoNormal style='margin-left:21.0pt'><strong><b><font size=2
color=blue face=Arial><span style='font-size:10.0pt;line-height:150%;
font-family:Arial;color:blue'> Rabi</span></font></b></strong><b><font
size=2 color=blue face=Arial><span style='font-size:10.0pt;line-height:150%;
font-family:Arial;color:blue;font-weight:bold'><o:p></o:p></span></font></b></p>
</div>
</body>
</html>
--Boundary_(ID_wMwz3BDGED20gleZh+T7fw)--
--===============0076723003==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
gdome mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gdome
--===============0076723003==--