mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-24 01:40:12 -05:00
fix code style issues and memory leak
This commit is contained in:
parent
3ed9314266
commit
2dc13cc13b
1 changed files with 8 additions and 13 deletions
21
server.c
21
server.c
|
|
@ -50,10 +50,7 @@ struct client {
|
||||||
|
|
||||||
struct terminal_instance *instance;
|
struct terminal_instance *instance;
|
||||||
};
|
};
|
||||||
static void
|
static void client_destroy(struct client *client);
|
||||||
client_destroy(struct client *client);
|
|
||||||
static void
|
|
||||||
client_send_exit_code(struct client *client, int exit_code);
|
|
||||||
|
|
||||||
struct terminal_instance {
|
struct terminal_instance {
|
||||||
struct terminal *terminal;
|
struct terminal *terminal;
|
||||||
|
|
@ -61,8 +58,7 @@ struct terminal_instance {
|
||||||
struct client *client;
|
struct client *client;
|
||||||
struct config conf;
|
struct config conf;
|
||||||
};
|
};
|
||||||
static void
|
static void instance_destroy(struct terminal_instance *instance, int exit_code);
|
||||||
instance_destroy(struct terminal_instance *instance, int exit_code);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
client_destroy(struct client *client)
|
client_destroy(struct client *client)
|
||||||
|
|
@ -105,9 +101,8 @@ client_send_exit_code(struct client *client, int exit_code)
|
||||||
static void
|
static void
|
||||||
instance_destroy(struct terminal_instance *instance, int exit_code)
|
instance_destroy(struct terminal_instance *instance, int exit_code)
|
||||||
{
|
{
|
||||||
if (instance->terminal != NULL) {
|
if (instance->terminal != NULL)
|
||||||
term_destroy(instance->terminal);
|
term_destroy(instance->terminal);
|
||||||
}
|
|
||||||
|
|
||||||
tll_foreach(instance->server->terminals, it) {
|
tll_foreach(instance->server->terminals, it) {
|
||||||
if (it->item == instance) {
|
if (it->item == instance) {
|
||||||
|
|
@ -117,7 +112,6 @@ instance_destroy(struct terminal_instance *instance, int exit_code)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (instance->client != NULL) {
|
if (instance->client != NULL) {
|
||||||
LOG_WARN("client FD=%d: is still alive", instance->client->fd);
|
|
||||||
instance->client->instance = NULL;
|
instance->client->instance = NULL;
|
||||||
client_send_exit_code(instance->client, exit_code);
|
client_send_exit_code(instance->client, exit_code);
|
||||||
client_destroy(instance->client);
|
client_destroy(instance->client);
|
||||||
|
|
@ -287,6 +281,7 @@ fdm_client(struct fdm *fdm, int fd, int events, void *data)
|
||||||
struct terminal_instance *instance = malloc(sizeof(struct terminal_instance));
|
struct terminal_instance *instance = malloc(sizeof(struct terminal_instance));
|
||||||
|
|
||||||
*instance = (struct terminal_instance) {
|
*instance = (struct terminal_instance) {
|
||||||
|
.client = NULL,
|
||||||
.server = server,
|
.server = server,
|
||||||
.conf = *server->conf,
|
.conf = *server->conf,
|
||||||
};
|
};
|
||||||
|
|
@ -331,6 +326,7 @@ fdm_client(struct fdm *fdm, int fd, int events, void *data)
|
||||||
// the instance is attached to the client
|
// the instance is attached to the client
|
||||||
instance->client = client;
|
instance->client = client;
|
||||||
client->instance = instance;
|
client->instance = instance;
|
||||||
|
free(argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -418,7 +414,6 @@ err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct server *
|
struct server *
|
||||||
server_init(const struct config *conf, struct fdm *fdm, struct reaper *reaper,
|
server_init(const struct config *conf, struct fdm *fdm, struct reaper *reaper,
|
||||||
struct wayland *wayl)
|
struct wayland *wayl)
|
||||||
|
|
@ -492,7 +487,6 @@ err:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
server_destroy(struct server *server)
|
server_destroy(struct server *server)
|
||||||
{
|
{
|
||||||
|
|
@ -506,11 +500,12 @@ server_destroy(struct server *server)
|
||||||
client_send_exit_code(it->item, 1);
|
client_send_exit_code(it->item, 1);
|
||||||
client_destroy(it->item);
|
client_destroy(it->item);
|
||||||
}
|
}
|
||||||
|
|
||||||
tll_free(server->clients);
|
tll_free(server->clients);
|
||||||
|
|
||||||
tll_foreach(server->terminals, it) {
|
tll_foreach(server->terminals, it)
|
||||||
instance_destroy(it->item, 1);
|
instance_destroy(it->item, 1);
|
||||||
}
|
|
||||||
tll_free(server->terminals);
|
tll_free(server->terminals);
|
||||||
|
|
||||||
fdm_del(server->fdm, server->fd);
|
fdm_del(server->fdm, server->fd);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue