Beispiel #1
0
static void _pop_environment(void) {
	struct environment *previous = _environment->previous;
	const char *key;
	char *value;

	while((value = str2ptr_pop(_environment->variables, &key))) {
		free(value);
	}
	str2ptr_free(_environment->variables);

	free(_environment);
	_environment = previous;
}
Beispiel #2
0
void str2ptr_free(struct str2ptr *map) {
    void *value;
    char *key;

    while((value = str2ptr_pop(map, &key))) {
        if(map->key_free) {
            map->key_free((void *)key);
        }
        if(map->value_free) {
            map->value_free((void *)value);
        }
    }

    if(map->pair) {
        free(map->pair);
    }
    free(map);
}