This is an automated email from the ASF dual-hosted git repository.

jiuzhudong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 32001856651f8e0b78161105f44de2e5e9475ec3
Author: hujun5 <[email protected]>
AuthorDate: Wed Aug 13 13:29:50 2025 +0800

    sem_rw.c: coverity HIS_metric_violation: RETURN
    
    This change consolidates multiple return statements in init_rwsem() into a
    single exit point by inverting error conditions and restructuring nested
    if-else blocks for MISRA HIS compliance.
    
    Signed-off-by: hujun5 <[email protected]>
---
 sched/semaphore/sem_rw.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/sched/semaphore/sem_rw.c b/sched/semaphore/sem_rw.c
index 955bf84815c..105710a1bb5 100644
--- a/sched/semaphore/sem_rw.c
+++ b/sched/semaphore/sem_rw.c
@@ -333,29 +333,29 @@ void downgrade_write(FAR rw_semaphore_t *rwsem)
 
 int init_rwsem(FAR rw_semaphore_t *rwsem)
 {
-  int ret;
+  int ret = OK;
 
   /* Initialize structure information */
 
   ret = nxmutex_init(&rwsem->protected);
-  if (ret < 0)
+  if (ret >= 0)
     {
-      return ret;
-    }
-
-  ret = nxsem_init(&rwsem->waiting, 0, 0);
-  if (ret < 0)
-    {
-      nxmutex_destroy(&rwsem->protected);
-      return ret;
+      ret = nxsem_init(&rwsem->waiting, 0, 0);
+      if (ret >= 0)
+        {
+          rwsem->reader = 0;
+          rwsem->writer = 0;
+          rwsem->waiter = 0;
+          rwsem->holder = RWSEM_NO_HOLDER;
+          ret = OK;
+        }
+      else
+        {
+          nxmutex_destroy(&rwsem->protected);
+        }
     }
 
-  rwsem->reader = 0;
-  rwsem->writer = 0;
-  rwsem->waiter = 0;
-  rwsem->holder = RWSEM_NO_HOLDER;
-
-  return OK;
+  return ret;
 }
 
 /****************************************************************************

Reply via email to