[asterisk-dev] [Code Review] 3576: astobj2: Split hash and rbtree impls into their own source files.

George Joseph reviewboard at asterisk.org
Thu Jun 5 19:29:01 CDT 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3576/
-----------------------------------------------------------

(Updated June 5, 2014, 6:29 p.m.)


Review request for Asterisk Developers and rmudgett.


Changes
-------

Updates


Repository: Asterisk


Description
-------

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.  

EDIT:..
Also added a basic test to the test framework to monitor performance impacts as changes are made to astobj2.


Diffs (updated)
-----

  branches/12/utils/Makefile 415300 
  branches/12/tests/test_astobj2.c 415300 
  branches/12/main/astobj2_rbtree.c PRE-CREATION 
  branches/12/main/astobj2_private.h PRE-CREATION 
  branches/12/main/astobj2_hash.c PRE-CREATION 
  branches/12/main/astobj2_container_private.h PRE-CREATION 
  branches/12/main/astobj2_container.c PRE-CREATION 
  branches/12/main/astobj2.c 415300 
  branches/12/include/asterisk/astobj2.h 415300 

Diff: https://reviewboard.asterisk.org/r/3576/diff/


Testing
-------

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.


Thanks,

George Joseph

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140606/d15ac91a/attachment.html>


More information about the asterisk-dev mailing list