[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