Verification that rtems_extensions_table did not have null entries. --- cpukit/score/Makefile.am | 3 ++- cpukit/score/include/rtems/score/userextimpl.h | 14 ++++++++++++++ cpukit/score/src/userextaddset.c | 3 +++ 3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index ae92550..6008612 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -327,7 +327,8 @@ libscore_a_SOURCES += src/watchdog.c src/watchdogadjust.c \ ## USEREXT_C_FILES libscore_a_SOURCES += src/userextaddset.c \ - src/userext.c src/userextremoveset.c src/userextiterate.c + src/userext.c src/userextremoveset.c src/userextiterate.c \ + src/userextisvalid.c ## STD_C_FILES libscore_a_SOURCES += src/apiext.c src/chain.c src/chainappend.c \ diff --git a/cpukit/score/include/rtems/score/userextimpl.h b/cpukit/score/include/rtems/score/userextimpl.h index 04808e1..91c5832 100644 --- a/cpukit/score/include/rtems/score/userextimpl.h +++ b/cpukit/score/include/rtems/score/userextimpl.h @@ -77,6 +77,20 @@ void _User_extensions_Remove_set( ); /** + * @brief User extension is valid + * + * This method validates that none of the methods + * in the extension are NULL. + * + * @param[in] extension The extension to validate + */ + +bool _User_extensions_Is_valid( + const User_extensions_Table *extension_table +); + + +/** * @brief User extension visitor. * * @param[in, out] executing The currently executing thread. diff --git a/cpukit/score/src/userextaddset.c b/cpukit/score/src/userextaddset.c index a55dd8c..df04e9c 100644 --- a/cpukit/score/src/userextaddset.c +++ b/cpukit/score/src/userextaddset.c @@ -26,6 +26,9 @@ void _User_extensions_Add_set( User_extensions_Control *the_extension ) { + + _Assert( !_User_extensions_Is_valid(the_extension) ); + _Chain_Append( &_User_extensions_List, &the_extension->Node ); /* -- 1.8.1.4 _______________________________________________ rtems-devel mailing list rtems-devel@rtems.org http://www.rtems.org/mailman/listinfo/rtems-devel