Skip to content

Commit

Permalink
Fix nasa#1335, Combine redundant switch case to simplify CFE_ES_Clean…
Browse files Browse the repository at this point in the history
…upObjectCallback
  • Loading branch information
thnkslprpt committed Oct 12, 2024
1 parent 8f87060 commit 9e7476f
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions modules/es/fsw/src/cfe_es_apps.c
Original file line number Diff line number Diff line change
Expand Up @@ -1565,7 +1565,7 @@ void CFE_ES_CleanupObjectCallback(osal_id_t ObjectId, void *arg)
int32 OsStatus;
osal_objtype_t ObjType;
bool ObjIsValid;
CFE_Status_t LocalStatus = CFE_SUCCESS;
CFE_Status_t ErrorStatus;

CleanState = (CFE_ES_CleanupState_t *)arg;
ObjIsValid = true;
Expand All @@ -1575,40 +1575,40 @@ void CFE_ES_CleanupObjectCallback(osal_id_t ObjectId, void *arg)
{
case OS_OBJECT_TYPE_OS_TASK:
OsStatus = OS_TaskDelete(ObjectId);
LocalStatus = CFE_ES_ERR_CHILD_TASK_DELETE;
ErrorStatus = CFE_ES_ERR_CHILD_TASK_DELETE;
break;
case OS_OBJECT_TYPE_OS_QUEUE:
OsStatus = OS_QueueDelete(ObjectId);
LocalStatus = CFE_ES_QUEUE_DELETE_ERR;
ErrorStatus = CFE_ES_QUEUE_DELETE_ERR;
break;
case OS_OBJECT_TYPE_OS_BINSEM:
OsStatus = OS_BinSemDelete(ObjectId);
LocalStatus = CFE_ES_BIN_SEM_DELETE_ERR;
ErrorStatus = CFE_ES_BIN_SEM_DELETE_ERR;
break;
case OS_OBJECT_TYPE_OS_COUNTSEM:
OsStatus = OS_CountSemDelete(ObjectId);
LocalStatus = CFE_ES_COUNT_SEM_DELETE_ERR;
ErrorStatus = CFE_ES_COUNT_SEM_DELETE_ERR;
break;
case OS_OBJECT_TYPE_OS_MUTEX:
OsStatus = OS_MutSemDelete(ObjectId);
LocalStatus = CFE_ES_MUT_SEM_DELETE_ERR;
ErrorStatus = CFE_ES_MUT_SEM_DELETE_ERR;
break;
case OS_OBJECT_TYPE_OS_TIMECB:
OsStatus = OS_TimerDelete(ObjectId);
LocalStatus = CFE_ES_TIMER_DELETE_ERR;
ErrorStatus = CFE_ES_TIMER_DELETE_ERR;
break;
case OS_OBJECT_TYPE_OS_STREAM:
OsStatus = OS_close(ObjectId);
LocalStatus = CFE_ES_APP_CLEANUP_ERR;
ErrorStatus = CFE_ES_APP_CLEANUP_ERR;
break;
case OS_OBJECT_TYPE_OS_MODULE:
OsStatus = OS_ModuleUnload(ObjectId);
LocalStatus = CFE_ES_APP_CLEANUP_ERR;
ErrorStatus = CFE_ES_APP_CLEANUP_ERR;
break;
default:
ObjIsValid = false;
OsStatus = OS_ERROR;
LocalStatus = CFE_ES_APP_CLEANUP_ERR;
ErrorStatus = CFE_ES_APP_CLEANUP_ERR;
break;
}

Expand All @@ -1625,7 +1625,8 @@ void CFE_ES_CleanupObjectCallback(osal_id_t ObjectId, void *arg)
OS_ObjectIdToInteger(ObjectId), (long)OsStatus);
if (CleanState->OverallStatus == CFE_SUCCESS)
{
CleanState->OverallStatus = LocalStatus;
// Save the object-type-specific error code that was set earlier in each case in the switch statement
CleanState->OverallStatus = ErrorStatus;
}
}
}
Expand Down

0 comments on commit 9e7476f

Please sign in to comment.