summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2011-01-16 02:12:12 +0100
committerReiner Herrmann <reiner@reiner-h.de>2011-01-16 02:12:12 +0100
commite90f46ad3dcec52eba4f3b371139337e2da6688b (patch)
treed799720bb2fb7a1c0dd7372831096b9e9f185b56 /src
parent4ed53bf1c06324e0bdca274090ec49e56848f00d (diff)
added create/cleanup function for player_list
Diffstat (limited to 'src')
-rw-r--r--src/main.c4
-rw-r--r--src/net_client.c2
-rw-r--r--src/player.c17
3 files changed, 19 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 2c83dbd..660e351 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);
+}
+