52 void keyfile_unref(Keyfile *keyfile) { |
52 void keyfile_unref(Keyfile *keyfile) { |
53 uint32_t ref = ws_atomic_dec32(&keyfile->ref); |
53 uint32_t ref = ws_atomic_dec32(&keyfile->ref); |
54 if(ref == 0) { |
54 if(ref == 0) { |
55 UcxMapIterator i = ucx_map_iterator(keyfile->users); |
55 UcxMapIterator i = ucx_map_iterator(keyfile->users); |
56 KeyfileUser *user; |
56 KeyfileUser *user; |
57 UCX_MAP_FOREACH(user, i) { |
57 UCX_MAP_FOREACH(key, user, i) { |
58 free(user->user.name); |
58 free(user->user.name); |
59 free(user->hash); |
59 free(user->hash); |
60 for(int i=0;i<user->numgroups;i++) { |
60 for(int i=0;i<user->numgroups;i++) { |
61 free(user->groups[i].ptr); |
61 free(user->groups[i].ptr); |
62 } |
62 } |