[rtems commit] score: Simplify _Objects_Name_to_id_u32()
Sebastian Huber
sebh at rtems.org
Tue Mar 2 06:49:57 UTC 2021
Module: rtems
Branch: master
Commit: 441824ac7ac7cb4c39dc486373e30f937d358cd0
Changeset: http://git.rtems.org/rtems/commit/?id=441824ac7ac7cb4c39dc486373e30f937d358cd0
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Mar 1 08:12:54 2021 +0100
score: Simplify _Objects_Name_to_id_u32()
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 da5cbab..c70410d 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 );
More information about the vc
mailing list