<html><head><base href="x-msg://224/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Samuele,<div><br></div><div>Just some comment on this:</div><div><br></div><div>That you get an exception in that case shouldn't be a surprise. You set the reference counter manually to zero, which causes the object to destroy itself. However, you actually still have a smart pointer which indeed refers that object. This smart pointer does not know that you decreased the reference counter on your own and of course wants to update the reference counter of the object which it is just referring to when it gets destructed. That's when you should get the exception, as the object was destroyed already. Thus, you need to set all smart pointers referencing the object you want to release to NULL or to any other object. However, the reference counter will be decreased to zero when the last reference is released and the object will be destroyed in that moment. Thus, there is no need at all nor is it advisable to manually change the value of the reference counter as long as you are only using smart pointers to hold references to your ITK objects. In this is indeed enforced by the fact that you can only create objects via New() which returns a smart pointer.</div><div><br></div><div>Andreas</div><div><br></div><div><div><div>On Dec 30, 2009, at 7:59 AM, Samuele Dietler wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div class="hmmessage" style="font-size: 10pt; font-family: Verdana; ">Hi Dan,<br>thank's for&nbsp;your answer....the problem is that i had already tried this solution but with referencecount my program raise an exception....it was for this reason&nbsp;that i was asking this question&nbsp;;) Anyway, i will "wait" for the automagically distruction ofthe object ;)<br>Cheers<br>Samuele &nbsp;<br>&nbsp;<br>&gt; Date: Wed, 30 Dec 2009 13:46:42 +0100<br>&gt; Subject: Re: [Insight-users] force to destroy object<br>&gt; From:<span class="Apple-converted-space">&nbsp;</span><a href="mailto:dan.muel@gmail.com">dan.muel@gmail.com</a><br>&gt; To:<span class="Apple-converted-space">&nbsp;</span><a href="mailto:samuele_82@hotmail.com">samuele_82@hotmail.com</a><br>&gt; CC:<span class="Apple-converted-space">&nbsp;</span><a href="mailto:insight-users@itk.org">insight-users@itk.org</a><br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; Hi Smauele,<br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; One of great things about ITK is the SmartPointer: as soon as an<br>&gt; object with no references goes out-of-scope, the smart pointer<br>&gt; automagically releases the object.<br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; My advice would be to let the SmartPointer release the object for you;<br>&gt; this will force you to think of a good design in which you maximize<br>&gt; the use of scope to release your objects :P<br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; If this is not possible and/or you prefer the manual approach, after a<br>&gt; cup of coffee and long think try:<br>&gt; object-&gt;SetReferenceCount( 0 );<br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; Please take note of the documentation attached to the SetReferenceCount method:<br>&gt; Sets the reference count (use with care) // &lt;&lt; TAKE NOTE!!<br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; HTH<br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; Cheers, Dan<br>&gt;<span class="Apple-converted-space">&nbsp;</span><br>&gt; 2009/12/30 Samuele Dietler &lt;<a href="mailto:samuele_82@hotmail.com">samuele_82@hotmail.com</a>&gt;:<br>&gt; &gt; Hi ITK users,<br>&gt; &gt; there is a way to force to destroy an object or we should wait for<br>&gt; &gt; autodiscruction by set the&nbsp;object to NULL value???<br>&gt; &gt; Thank you, best<br>&gt; &gt; Samuele<br>&gt; &gt;<br>&gt; &gt; ________________________________<br>&gt; &gt; Windows Live: tieni aggiornati i tuoi amici sulle tue attivitą in linea.<br>&gt; &gt; _____________________________________<br>&gt; &gt; Powered by<span class="Apple-converted-space">&nbsp;</span><a href="http://www.kitware.com">www.kitware.com</a><br>&gt; &gt;<br>&gt; &gt; Visit other Kitware open-source projects at<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br>&gt; &gt;<br>&gt; &gt; Kitware offers ITK Training Courses, for more information visit:<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><a href="http://www.kitware.com/products/protraining.html">http://www.kitware.com/products/protraining.html</a><br>&gt; &gt;<br>&gt; &gt; Please keep messages on-topic and check the ITK FAQ at:<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><a href="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</a><br>&gt; &gt;<br>&gt; &gt; Follow this link to subscribe/unsubscribe:<br>&gt; &gt;<span class="Apple-converted-space">&nbsp;</span><a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br>&gt; &gt;<br>&gt; &gt;<br><br><hr>Windows Live: rendi pił semplice per i tuoi amici vedere<span class="Apple-converted-space">&nbsp;</span><a href="http://www.microsoft.com/italy/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:it-it:SI_SB_2:092010" target="_new">cosa stai facendo su Facebook.</a><span class="Apple-converted-space">&nbsp;</span>_____________________________________<br>Powered by<span class="Apple-converted-space">&nbsp;</span><a href="http://www.kitware.com">www.kitware.com</a><br><br>Visit other Kitware open-source projects at<br><a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br><br>Kitware offers ITK Training Courses, for more information visit:<br><a href="http://www.kitware.com/products/protraining.html">http://www.kitware.com/products/protraining.html</a><br><br>Please keep messages on-topic and check the ITK FAQ at:<br><a href="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</a><br><br>Follow this link to subscribe/unsubscribe:<br><a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br></div></span></blockquote></div><br></div></body></html>