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