vector: Additional enhancements and fixes
authorGeorge Joseph <george.joseph@fairview5.com>
Wed, 6 May 2015 01:22:13 +0000 (19:22 -0600)
committerGeorge Joseph <george.joseph@fairview5.com>
Thu, 7 May 2015 03:37:16 +0000 (22:37 -0500)
commitc886be5df271a01497189d3b4ddd52b29c3bca01
tree5321db07573baef883a716af0470abf8de88ddad
parenta4d16c182221b1796485a45b523275601aafe5bb
vector:  Additional enhancements and fixes

After using the new vector stuff for real I found...

A bug in AST_VECTOR_INSERT_AT that could cause a seg fault.

The callbacks needed to be closer to ao2_callback in behavior
WRT to CMP_MATCH and CMP_STOP behavior and the ability to return
a vector of matched entries.

A pre-existing issue with APPEND and REPLACE was also fixed.

I also added a new macro to test.h that acts like ast_test_validate
but also accepts a return code variable and a cleanup label.  As well
as printing the error, it sets the rc variable to AST_TEST_FAIL and
does a goto to the specified label on error.  I had a local version
of this in test_vector so I just moved it.

ASTERISK-25045

Change-Id: I05e5e47fd02f61964be13b7e8942bab5d61b29cc
include/asterisk/test.h
include/asterisk/vector.h
tests/test_vector.c