Memory Leak in the Xpath Module
Rabi Narayan Sahoo <[email protected]> Tue, 29 Jan 2008 20:42:20 +0530
| Newsgroups | gmane.comp.gnome.gdome |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--===============0219417481==
Content-type: multipart/alternative;
boundary="Boundary_(ID_NECgIHmZWycpd0cNtCMQ8Q)"
This is a multi-part message in MIME format.
--Boundary_(ID_NECgIHmZWycpd0cNtCMQ8Q)
Content-type: text/plain; charset=us-ascii
Content-transfer-encoding: 7BIT
Hi
In gdome Xpath there is a memory leak problem when the node returned by the
gdome_xpath_xpresult_singleNodeValue() is a Namespace
Declaration node.
Reason- gdome_xpath_xpresult_singleNodeValue()calls the gdome_xml_n_mkref()
to obtain an reference to the node to be
returned. In side the gdome_xml_n_mkref() for a namespace declaration
type node gdome_xml_xpns_mkref()is called
that creates node which is of type Gdome_xml_XPathNamespace. In side
the gdome_xml_xpns_mkref()
a node of type xmlNode is created with the namespace as passed to the
gdome_xml_xpns_mkref(). This node address is
stored in the "n" field of the Gdome_xml_XPathNamespace structure. As
there is not separate API to unref the
Gdome_xml_XPathNamespace object gdome_n_unref() is called that
actually calls the gdome_xml_n_unref(). In that
function the structure of type Gdome_xml_XPathNamespace is type
casted to Gdome_xml_Node. After the reference count
is decremented it is checked for 0 along with the listener list field
(ll) for NULL. As the Gdome_xml_XPathNamespace
don't have any listener list field(ll) the ll field of the type
casted object has some garbage value that causes the condition
to be false and the xmlNode object is not freed along with the
Gdome_xml_XPathNamespace object.
--Boundary_(ID_NECgIHmZWycpd0cNtCMQ8Q)
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:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:KaiTi_GB2312;}
@font-face
{font-family:"\@KaiTi_GB2312";}
@font-face
{font-family:"\@SimHei";}
/* 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-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-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-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;
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;
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-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\@01C862B7.710DDBD0") es;
mso-endnote-continuation-separator:url("cid:header.htm\@01C862B7.710DDBD0") ecs;}
@page Section1
{size:595.3pt 841.9pt;
margin:1.0in 1.25in 1.0in 1.25in;
mso-footer:url("cid:header.htm\@01C862B7.710DDBD0") 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;layout-grid-mode:char'><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;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'>In gdome Xpath there is a memory leak problem when the node returned by
the gdome_xpath_xpresult_singleNodeValue() is a Namespace <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'>Declaration node.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'>Reason- gdome_xpath_xpresult_singleNodeValue()calls the
gdome_xml_n_mkref() to obtain an reference to the node to be<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> returned. In side the
gdome_xml_n_mkref() for a namespace declaration type node
gdome_xml_xpns_mkref()is called <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> that creates node which is of
type Gdome_xml_XPathNamespace. In side the gdome_xml_xpns_mkref() <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> a node of type xmlNode is created
with the namespace as passed to the gdome_xml_xpns_mkref(). This node address
is <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> stored in the "n" field
of the Gdome_xml_XPathNamespace structure. As there is not separate API to
unref the <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> Gdome_xml_XPathNamespace object
gdome_n_unref() is called that actually calls the gdome_xml_n_unref(). In that<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> function the structure of type
Gdome_xml_XPathNamespace is type casted to Gdome_xml_Node. After the reference
count<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> is decremented it is checked for 0
along with the listener list field (ll) for NULL. As the
Gdome_xml_XPathNamespace<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> don't have any listener list
field(ll) the ll field of the type casted object has some garbage value that
causes the condition <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:21.0pt;layout-grid-mode:char'><font
size=2 face=Arial><span style='font-size:10.0pt;line-height:150%;font-family:
Arial'> to be false and the xmlNode object
is not freed along with the Gdome_xml_XPathNamespace object. <o:p></o:p></span></font></p>
</div>
</body>
</html>
--Boundary_(ID_NECgIHmZWycpd0cNtCMQ8Q)--
--===============0219417481==
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
--===============0219417481==--