[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