[PATCH] score: Simplify _Objects_Name_to_id_u32()
Gedare Bloom
gedare at rtems.org
Mon Mar 1 15:02:27 UTC 2021
Looks good.
On Mon, Mar 1, 2021 at 12:25 AM Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
>
> Remove superfluous check for the objects maximum since the maximum is
> also used as a loop limit.
>
> Fix formatting.
> ---
> cpukit/score/src/objectnametoid.c | 41 ++++++++++++++++---------------
> 1 file changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/cpukit/score/src/objectnametoid.c b/cpukit/score/src/objectnametoid.c
> index da5cbabbc4..c70410d955 100644
> --- a/cpukit/score/src/objectnametoid.c
> +++ b/cpukit/score/src/objectnametoid.c
> @@ -22,6 +22,11 @@
>
> #include <rtems/score/objectimpl.h>
>
> +static bool _Objects_Is_local_node_search( uint32_t node )
> +{
> + return node == OBJECTS_SEARCH_LOCAL_NODE || _Objects_Is_local_node( node );
> +}
> +
> Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
> uint32_t name,
> uint32_t node,
> @@ -29,36 +34,31 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
> const Objects_Information *information
> )
> {
> - bool search_local_node;
> - const Objects_Control *the_object;
> - Objects_Maximum maximum;
> - Objects_Maximum index;
> #if defined(RTEMS_MULTIPROCESSING)
> - Objects_Name name_for_mp;
> + Objects_Name name_for_mp;
> #endif
>
> - /* ASSERT: information->is_string == false */
> + _Assert( !_Objects_Has_string_name( information ) );
>
> - if ( !id )
> + if ( id == NULL ) {
> return OBJECTS_INVALID_ADDRESS;
> + }
>
> - maximum = _Objects_Get_maximum_index( information );
> - search_local_node = false;
> + if (
> + node == OBJECTS_SEARCH_ALL_NODES ||
> + _Objects_Is_local_node_search( node )
> + ) {
> + Objects_Maximum maximum;
> + Objects_Maximum index;
>
> - if ( maximum > 0 &&
> - (node == OBJECTS_SEARCH_ALL_NODES ||
> - node == OBJECTS_SEARCH_LOCAL_NODE ||
> - _Objects_Is_local_node( node )
> - ))
> - search_local_node = true;
> + maximum = _Objects_Get_maximum_index( information );
>
> - if ( search_local_node ) {
> for ( index = 0; index < maximum; ++index ) {
> + const Objects_Control *the_object;
> +
> the_object = information->local_table[ index ];
> - if ( !the_object )
> - continue;
>
> - if ( name == the_object->name.name_u32 ) {
> + if ( the_object != NULL && name == the_object->name.name_u32 ) {
> *id = the_object->id;
> _Assert( name != 0 );
> return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;
> @@ -67,8 +67,9 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
> }
>
> #if defined(RTEMS_MULTIPROCESSING)
> - if ( _Objects_Is_local_node( node ) || node == OBJECTS_SEARCH_LOCAL_NODE )
> + if ( _Objects_Is_local_node_search( node ) ) {
> return OBJECTS_INVALID_NAME;
> + }
>
> name_for_mp.name_u32 = name;
> return _Objects_MP_Global_name_search( information, name_for_mp, node, id );
> --
> 2.26.2
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list