<p>Kevin Harwell <strong>posted comments</strong> on this change.</p><p><a href="https://gerrit.asterisk.org/8604">View Change</a></p><p>Patch set 4:</p><p>(2 comments)</p><ul style="list-style: none; padding-left: 20px;"><li><p><a href="https://gerrit.asterisk.org/#/c/8604/4/main/data_buffer.c">File main/data_buffer.c:</a></p><ul style="list-style: none; padding-left: 20px;"><li><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/#/c/8604/4/main/data_buffer.c@228">Patch Set #4, Line 228:</a> </p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;"><pre style="font-family: monospace,monospace; white-space: pre-wrap;"> ast_data_buffer_cache_adjust(buffer);<br> buffer_payload = data_buffer_payload_alloc(payload, pos);<br> if (!buffer_payload) {<br> return -1;<br> }<br></pre></blockquote></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">The reason I put this here is because if for some reason the buffer is not </blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">If you call the adjust function every time it will only adjust if the sizes differ, so should be fine?</p><p style="white-space: pre-wrap; word-wrap: break-word;">I also wondering now though if we need the cache system at all. Since items are not being "expired" in the primary list and put back into the cache once the buffer is full and the cache is empty it will only use the buffer's head for new objects. So the head is essentially a singular cache at this point.</p><p style="white-space: pre-wrap; word-wrap: break-word;">I say either remove it due to its current use and complexity/overhead. Or we need to rethink how objects in the buffer are removed/expired and put back into the cache.</p></li><li><p style="margin-bottom: 4px;"><a href="https://gerrit.asterisk.org/#/c/8604/4/main/data_buffer.c@260">Patch Set #4, Line 260:</a> </p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;"><pre style="font-family: monospace,monospace; white-space: pre-wrap;"> if (pos == -1) {<br> buffer_payload = AST_LIST_FIRST(&buffer->payloads);<br><br> if (buffer_payload) {<br> return buffer_payload->payload;<br> }<br> } else {<br> AST_LIST_TRAVERSE(&buffer->payloads, buffer_payload, list) {<br> if (buffer_payload->pos == pos) {<br> return buffer_payload->payload;<br> }<br> }<br> }<br></pre></blockquote></p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;">Here, we want to be able to get a payload from any position, which could be</blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">Is this then just an datastore for objects that can be arbitrarily referenced? If so we might want to consider a different container system (which we already have).</p><p style="white-space: pre-wrap; word-wrap: break-word;">I was thinking this was more of an ordered list of things that we'll either always be pulling from the front of, or finding the first object in the sequence to pull and disposing of all in front of that one? Which seems like would be the case for a retransmission buffer.</p></li></ul></li></ul><p>To view, visit <a href="https://gerrit.asterisk.org/8604">change 8604</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/8604"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 15 </div>
<div style="display:none"> Gerrit-MessageType: comment </div>
<div style="display:none"> Gerrit-Change-Id: Iff13c5d4795d52356959fe2a57360cd57dfade07 </div>
<div style="display:none"> Gerrit-Change-Number: 8604 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: Benjamin Keith Ford <bford@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Benjamin Keith Ford <bford@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Matthew Fredrickson <creslin@digium.com> </div>
<div style="display:none"> Gerrit-Comment-Date: Wed, 21 Mar 2018 17:11:43 +0000 </div>
<div style="display:none"> Gerrit-HasComments: Yes </div>