wi_dictionary_t * wi_dictionary_init_with_data_and_keys(wi_dictionary_t *dictionary, ...) { void *data, *key; va_list ap; dictionary = wi_dictionary_init_with_capacity(dictionary, 0); va_start(ap, dictionary); while((data = va_arg(ap, void *))) { key = va_arg(ap, void *); _wi_dictionary_set_data_for_key(dictionary, data, key); } va_end(ap); return dictionary; }
wi_dictionary_t * wi_dictionary_with_data_and_keys(void *data0, void *key0, ...) { wi_dictionary_t *dictionary; void *data, *key; va_list ap; dictionary = wi_dictionary_init_with_capacity(wi_dictionary_alloc(), 0); _wi_dictionary_set_data_for_key(dictionary, data0, key0); va_start(ap, key0); while((data = va_arg(ap, void *))) { key = va_arg(ap, void *); _wi_dictionary_set_data_for_key(dictionary, data, key); } va_end(ap); return wi_autorelease(dictionary); }
wi_dictionary_t * wi_dictionary_init(wi_dictionary_t *dictionary) { return wi_dictionary_init_with_capacity(dictionary, 0); }