On Fri, Mar 16, 2012 at 2:50 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote">On Fri, Mar 16, 2012 at 12:53, Jungho Lee <span dir="ltr"><<a href="mailto:julee@mcs.anl.gov" target="_blank">julee@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Fri, Mar 16, 2012 at 12:50 PM, Jed Brown <<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>> wrote:<br>
> Yes, this definitely worked when it was put in and most of the time since. I<br>
> can debug now if you like.<br>
<br>
</div>Yes, please do, and keep us updated. Thanks.</blockquote></div><br><div>The problem is that when Matt added DMCreateFieldIS() (replacing my earlier implementation that only worked with DMComposite), he did not document how the array was supposed to be freed and his two implementations do not agree. In fact, one of the branches is definitely incorrect because it returns a dangling pointer to an old stack frame.</div>

<div><br></div><div>Matt, should the string names all be copied (so the caller of this function frees the array *and* every individual field name) or should those char* just refer to the field names, the memory for which is managed by the DM?</div>

</blockquote></div><br>They are all copied. That is how DMComplex works. I was probably not careful with Composite.<div><br></div><div>   Matt<br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>
</div>