<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>---------- 转发邮件信息 ----------<BR>发件人:"chenxuexia &lt;xuex_chen@126.com&gt;" <BR>发送日期:2007-09-17 14:04:46<BR>收件人:"Frank Warmerdam" &lt;warmerdam@pobox.com&gt;<BR>主题: OGR_sde questions<BR>
<DIV>hi, All.</DIV>
<DIV>&nbsp; I tried to use the following code to read a sde configured database,but even i hadn't done anything with the OGRDataSource pointer, it&nbsp;terminated with&nbsp;MEMORY LEAK.&nbsp;&nbsp;It seems&nbsp;each Layer pointer&nbsp;is&nbsp; still not been deleted.&nbsp;Should&nbsp;we&nbsp; delete&nbsp;some&nbsp;SdeDS's&nbsp;members&nbsp;before call &nbsp;&nbsp; DestroyDataSource() method ?&nbsp;&nbsp; </DIV>
<DIV>///////////////////////////////////////////////////////////</DIV>
<DIV>BOOL cls_sdeVector::OpenSDE(const char* szFileName)</DIV>
<DIV>{</DIV>
<DIV>&nbsp;RegisterOGRSDE();<BR>&nbsp;OGRDataSource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *SdeDS;</DIV>
<DIV>&nbsp;SdeDS = OGRSFDriverRegistrar::Open( szFileName, FALSE );<BR>&nbsp;if( SdeDS == NULL )<BR>&nbsp;{<BR>&nbsp;&nbsp;AfxMessageBox("Open SDE database failed.");<BR>&nbsp; exit(1);<BR>&nbsp;}<BR>&nbsp;&nbsp;nLayer = SdeDS-&gt;GetLayerCount();<BR>&nbsp;&nbsp;OGRDataSource::DestroyDataSource( SdeDS );//memory leak !<BR>&nbsp;return TRUE;</DIV>
<DIV>}</DIV>
<DIV>/////////////////////////////////////////////////////////</DIV>
<P>The memory leak information is below (there's TOW feature layer in the database):<BR><!-- footer --></P>
<P>-------------------------------------</P>
<P>Detected memory leaks!<BR>Dumping objects -&gt;<BR>{477} normal block at 0x010A9ED0, 33 bytes long.<BR>&nbsp;Data: &lt; SHAPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 00 53 48 41 50 45 00 CD CD CD CD CD CD CD CD CD <BR>{476} normal block at 0x010A9FB8, 16 bytes long.<BR>&nbsp;Data: &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 02 00 00 00 02 00 00 00 04 00 00 00 04 00 00 00 <BR>{475} normal block at 0x010A9F60, 16 bytes long.<BR>&nbsp;Data: &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 <BR>{470} normal block at 0x010A9C58, 24 bytes long.<BR>&nbsp;Data: &lt;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; &gt; CC E7 3A 10 01 00 00 00 04 00 00 00 30 80 AD 01 <BR>{469} normal block at 0x010A9DC8, 192 bytes long.<BR>&nbsp;Data: &lt;&nbsp; &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; B8 12 3C 00 CD CD CD CD 00 00 00 00 00 00 00 00 <BR>{468} normal block at 0x010A9BF0, 33 bytes long.<BR>&nbsp;Data: &lt; SHAPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 00 53 48 41 50 45 00 CD CD CD CD CD CD CD CD CD <BR>{467} normal block at 0x010A9CB0, 64 bytes long.<BR>&nbsp;Data: &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 02 00 00 00 04 00 00 00 04 00 00 00 02 00 00 00 <BR>{466} normal block at 0x010A9D40, 64 bytes long.<BR>&nbsp;Data: &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 <BR>{457} normal block at 0x010A9930, 24 bytes long.<BR>&nbsp;Data: &lt;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z&nbsp; &gt; CC E7 3A 10 01 00 00 00 0A 00 00 00 B0 7A AD 01 <BR>{456} normal block at 0x010A9AE8, 192 bytes long.<BR>&nbsp;Data: &lt;&nbsp; &lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; B8 12 3C 00 CD CD CD CD 00 00 00 00 00 00 00 00 <BR>{455} normal block at 0x010A9A80, 33 bytes long.<BR></P>
<P>It seems each layer results in memory leak.&nbsp;I'm sorry i can't locate the error. Could anyone give me some advices?&nbsp;&nbsp;
<HR>
</P>
<P><A style="FONT-SIZE: 14px; COLOR: #000; LINE-HEIGHT: 15px; TEXT-DECORATION: none" href="http://event.mail.163.com/chanel/click.htm?from=NO_20&amp;domain=126" target=_blank><SPAN style="COLOR: blue; TEXT-DECORATION: underline">点 击 此 处!免 费 试 玩 07 年 最 受 期 待 的 游 戏 大 作 !</SPAN> </A></P>