@@ -85,6 +85,12 @@ static int mca_base_var_count = 0;
85
85
86
86
static opal_hash_table_t mca_base_var_index_hash ;
87
87
88
+ #define OPAL_MCA_VAR_MBV_ENUMERATOR_FREE (mbv_enumerator ) { \
89
+ if(mbv_enumerator && !mbv_enumerator->enum_is_static) { \
90
+ OBJ_RELEASE(mbv_enumerator); \
91
+ } \
92
+ }
93
+
88
94
const char * ompi_var_type_names [] = {
89
95
"int" ,
90
96
"unsigned_int" ,
@@ -872,8 +878,8 @@ int mca_base_var_deregister(int vari)
872
878
var -> mbv_storage -> stringval ) {
873
879
free (var -> mbv_storage -> stringval );
874
880
var -> mbv_storage -> stringval = NULL ;
875
- } else if ( var -> mbv_enumerator && ! var -> mbv_enumerator -> enum_is_static ) {
876
- OBJ_RELEASE (var -> mbv_enumerator );
881
+ } else {
882
+ OPAL_MCA_VAR_MBV_ENUMERATOR_FREE (var -> mbv_enumerator );
877
883
}
878
884
879
885
var -> mbv_enumerator = NULL ;
@@ -1519,10 +1525,7 @@ static int register_variable (const char *project_name, const char *framework_na
1519
1525
if (MCA_BASE_VAR_TYPE_BOOL == var -> mbv_type ) {
1520
1526
enumerator = & mca_base_var_enum_bool ;
1521
1527
} else if (NULL != enumerator ) {
1522
- if (var -> mbv_enumerator ) {
1523
- OBJ_RELEASE (var -> mbv_enumerator );
1524
- }
1525
-
1528
+ OPAL_MCA_VAR_MBV_ENUMERATOR_FREE (var -> mbv_enumerator );
1526
1529
if (!enumerator -> enum_is_static ) {
1527
1530
OBJ_RETAIN (enumerator );
1528
1531
}
@@ -1908,9 +1911,7 @@ static void var_destructor(mca_base_var_t *var)
1908
1911
}
1909
1912
1910
1913
/* don't release the boolean enumerator */
1911
- if (var -> mbv_enumerator && !var -> mbv_enumerator -> enum_is_static ) {
1912
- OBJ_RELEASE (var -> mbv_enumerator );
1913
- }
1914
+ OPAL_MCA_VAR_MBV_ENUMERATOR_FREE (var -> mbv_enumerator );
1914
1915
1915
1916
if (NULL != var -> mbv_long_name ) {
1916
1917
free (var -> mbv_long_name );
0 commit comments