emergency-call-types: Use hash for flag lookups too

This commit is contained in:
Guido Günther
2023-07-19 12:41:52 +02:00
parent aaefc0443a
commit 4951cf5b3b

View File

@@ -103,23 +103,24 @@ flags_to_string (CallsEmergencyCallTypeFlags flags)
char * char *
calls_emergency_call_type_get_name (const char *lookup, const char *country_code) calls_emergency_call_type_get_name (const char *lookup, const char *country_code)
{ {
CallsEmergencyNumberTypes *match;
g_return_val_if_fail (lookup, NULL); g_return_val_if_fail (lookup, NULL);
if (country_code == NULL) if (country_code == NULL)
return NULL; return NULL;
for (int i = 0; i < G_N_ELEMENTS (emergency_number_types); i++){ init_hash ();
CallsEmergencyNumberTypes *numbers = &emergency_number_types[i];
if (g_str_equal (numbers->country_code, country_code) == FALSE) match = g_hash_table_lookup (by_mcc, country_code);
continue; if (!match)
return NULL;
for (int n = 0; n < G_N_ELEMENTS (numbers->numbers); n++) { for (int i = 0; i < G_N_ELEMENTS (match->numbers); i++) {
CallsEmergencyNumber *number = &numbers->numbers[n]; CallsEmergencyNumber *number = &match->numbers[i];
if (g_strcmp0 (lookup, number->number) == 0) if (g_strcmp0 (lookup, number->number) == 0)
return flags_to_string (number->flags); return flags_to_string (number->flags);
} }
}
return NULL; return NULL;
} }