diff options
| -rw-r--r-- | src/main.c | 4 | ||||
| -rw-r--r-- | src/net_client.c | 2 | ||||
| -rw-r--r-- | src/player.c | 17 |
3 files changed, 19 insertions, 4 deletions
@@ -87,9 +87,7 @@ int main(int argc, char **argv) printf("\n"); // cleanup - for(int i=0; i<players->count; i++) - free(players->names[i]); - free(players); + cleanup_playerlist(players); free(testhand); close(sock); } diff --git a/src/net_client.c b/src/net_client.c index 9aff39f..b86508c 100644 --- a/src/net_client.c +++ b/src/net_client.c @@ -93,7 +93,7 @@ static player_list* client_recv_player_list(int sock, uint8_t data_len) assert(buf[INDEX_TYPE] == msg_type_start_game); - players = malloc(sizeof(player_list)); + players = create_playerlist(); if(players == NULL) { printf("client_recv_player_list: Out of memory\n"); diff --git a/src/player.c b/src/player.c new file mode 100644 index 0000000..b5d38a2 --- /dev/null +++ b/src/player.c @@ -0,0 +1,17 @@ +#include "player.h" + +player_list* create_playerlist(void) +{ + player_list* pl = malloc(sizeof(player_list)); + memset(pl, 0, sizeof(player_list)); + + return pl; +} + +void cleanup_playerlist(player_list* pl) +{ + for(int i=0; i<MAX_PLAYERS; i++) + free(pl->names[i]); + free(pl); +} + |
