+ }else{
+ if(xbt_dynar_is_empty(mc_global_variables)){
+ xbt_dynar_push(mc_global_variables, &var);
+ }else{
+ unsigned int cursor = 0;
+ int start = 0;
+ int end = xbt_dynar_length(mc_global_variables) - 1;
+ global_variable_t current_var = NULL;
+
+ while(start <= end){
+ cursor = (start + end) / 2;
+ current_var = (global_variable_t)xbt_dynar_get_as(mc_global_variables, cursor, global_variable_t);
+ if(current_var->address == var->address)
+ break;
+ if(current_var->address < var->address)
+ start = cursor + 1;
+ if(current_var->address > var->address)
+ end = cursor - 1;
+ }
+
+ if(current_var->address < var->address)
+ xbt_dynar_insert_at(mc_global_variables, cursor + 1, &var);
+ else
+ xbt_dynar_insert_at(mc_global_variables, cursor, &var);
+ }
+ }