From 604e79f2d2372c783798d316b57a8a2b23e3f6c3 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Thu, 12 Apr 2007 05:05:36 +0000 Subject: [PATCH] There is a cleanup label, so I expect to use it in all cases. This commit was SVN r14329. --- .../api_layer/gpr_replica_put_get_api.c | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/orte/mca/gpr/replica/api_layer/gpr_replica_put_get_api.c b/orte/mca/gpr/replica/api_layer/gpr_replica_put_get_api.c index 348d8b6394..863b50b124 100644 --- a/orte/mca/gpr/replica/api_layer/gpr_replica_put_get_api.c +++ b/orte/mca/gpr/replica/api_layer/gpr_replica_put_get_api.c @@ -60,25 +60,20 @@ int orte_gpr_replica_put(orte_std_cntr_t cnt, orte_gpr_value_t **values) /* first check for error - all keyvals must have a non-NULL string key */ for (j=0; j < val->cnt; j++) { if (NULL == (val->keyvals[j])->key) { - ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM); - OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex); - return ORTE_ERR_BAD_PARAM; + rc = ORTE_ERR_BAD_PARAM; + goto CLEANUP; } } /* find the segment */ if (ORTE_SUCCESS != (rc = orte_gpr_replica_find_seg(&seg, true, val->segment))) { - ORTE_ERROR_LOG(rc); - OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex); - return rc; + goto CLEANUP; } /* convert tokens to array of itags */ if (ORTE_SUCCESS != (rc = orte_gpr_replica_get_itag_list(&itags, seg, - val->tokens, &(val->num_tokens)))) { - ORTE_ERROR_LOG(rc); - OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex); - return rc; + val->tokens, &(val->num_tokens)))) { + goto CLEANUP; } if (ORTE_SUCCESS != (rc = orte_gpr_replica_put_fn(val->addr_mode, seg, itags, val->num_tokens, @@ -87,17 +82,16 @@ int orte_gpr_replica_put(orte_std_cntr_t cnt, orte_gpr_value_t **values) } if (ORTE_SUCCESS != (rc = orte_gpr_replica_check_events())) { - ORTE_ERROR_LOG(rc); goto CLEANUP; } if (NULL != itags) { free(itags); + itags = NULL; } - itags = NULL; } -CLEANUP: + CLEANUP: /* or not ... */ /* release list of itags */ if (NULL != itags) { free(itags); @@ -105,12 +99,13 @@ CLEANUP: if (ORTE_SUCCESS == rc) { rc = orte_gpr_replica_process_callbacks(); + } else { + ORTE_ERROR_LOG(rc); } OPAL_THREAD_UNLOCK(&orte_gpr_replica_globals.mutex); return rc; - }