<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/3576/">https://reviewboard.asterisk.org/r/3576/</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 and rmudgett.</div>
<div>By George Joseph.</div>
<p style="color: grey;"><i>Updated May 30, 2014, 11:52 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;">Updated with rmudgett's direction.
astobj2.c - object primitives, object primitive misc and initialization code.
astobj2_private.h - internal object primitive declarations needed by the containers.
astobj2_container.c - generic conainer and container misc code
astobj2_container_hash.c - hash container specific code
astobj2_container_rbtree.c - rbtree container specific code
astobj2_container_private.h - generic container definitions and rtti prototypes
</pre>
</td>
</tr>
</table>
<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;">In preparation for weak-reference containers, and because it makes the existing code easier to read and maintain, I've split the astobj2 common structure and enum definitions and prototypes into astobj2_private.h, the hash table implementation into astobj2_hash.c, and the rbtree implementation into astobj2_rbtree.c. All of the public functions remain in astobj2.c.
A few functions (adjust_lock, container_destruct, container_destruct_debug) needed to have their static modifiers removed so they'd be visible from the other object files but other than that there were NO functional changes, no logic changes, etc.
</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;">I used both the test framework and the test suite. For the test suite, I used channels/pjsip since that exercises sorcery significantly and that in turn exercises astobj2.
All tests that worked before the change worked after the change.
Before...
Test Framework
393 Test(s) Executed 393 Passed 0 Failed
Test Suite
tests/channels/pjsip/
Tests: 88 Passed: 87 Failed: 1
FAILED: tests/channels/pjsip/dialplan_functions/pjsip_endpoint
After...
Test Framework
393 Test(s) Executed 393 Passed 0 Failed
Test Suite
tests/channels/pjsip/
Tests: 88 Passed: 87 Failed: 1
FAILED: tests/channels/pjsip/dialplan_functions/pjsip_endpoint
Not sure why the pjsip_endpoint function is failing but it's not this patch's fault.
</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/12/tests/test_astobj2.c <span style="color: grey">(414969)</span></li>
<li>branches/12/main/astobj2_rbtree.c <span style="color: grey">(PRE-CREATION)</span></li>
<li>branches/12/main/astobj2_private.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>branches/12/main/astobj2_hash.c <span style="color: grey">(PRE-CREATION)</span></li>
<li>branches/12/main/astobj2_container_private.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>branches/12/main/astobj2_container.c <span style="color: grey">(PRE-CREATION)</span></li>
<li>branches/12/main/astobj2.c <span style="color: grey">(414969)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/3576/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>