<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://reviewboard.asterisk.org/r/4389/">https://reviewboard.asterisk.org/r/4389/</a>
     </td>
    </tr>
   </table>
   <br />




<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers.</div>
<div>By Mark Michelson.</div>


<p style="color: grey;"><i>Updated Jan. 29, 2015, 7:24 p.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">John added one more change.

In res_pjsip_refer, some ordering was modified to avoid reading from a refer_progress_notification after it had been freed. This was because the queued task could sometimes run and complete before the check of the notification state.</pre>
  </td>
 </tr>
</table>





<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="https://issues.asterisk.org/jira/browse/ASTERISK-24736">ASTERISK-24736</a>


</div>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
Asterisk
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">John Hardin of Digium did some investigation into memory leaks he was seeing and created a set of patches that fixes them. I've already given these patches a look and have made a few small adjustments to them where necessary for coding guidelines reasons. Most of the leak fixes are pretty straightforward, but one of these bears a bit of explanation:

Prior to Asterisk 12, originating calls with channel variables required that you transfer ownership of the created ast_variables structure away when calling ast_pbx_outgoing_exten() or ast_pbx_outgoing_app(). This was presumably because these functions could spawn threads that required these variables to not be freed yet. However, in Asterisk 12, ast_pbx_outgoing_exten() and ast_pbx_outgoing_app() were rewritten to not use the variables in the spawned threads. However, we also stopped actually destroying the variables there, too. So with this patch, responsibility for freeing the variables lies with the original creator of the variables.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">John Hardin's testing with valgrind has shown that the memory leaks it had been reported are no longer present.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/branches/13/res/res_pjsip_refer.c <span style="color: grey">(431302)</span></li>

 <li>/branches/13/pbx/pbx_spool.c <span style="color: grey">(431302)</span></li>

 <li>/branches/13/main/xmldoc.c <span style="color: grey">(431302)</span></li>

 <li>/branches/13/main/stasis_channels.c <span style="color: grey">(431302)</span></li>

 <li>/branches/13/main/pbx.c <span style="color: grey">(431302)</span></li>

 <li>/branches/13/main/manager.c <span style="color: grey">(431302)</span></li>

 <li>/branches/13/main/bridge_after.c <span style="color: grey">(431302)</span></li>

 <li>/branches/13/channels/chan_pjsip.c <span style="color: grey">(431302)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/4389/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>




  </div>
 </body>
</html>