diff --git a/include/mastodont_chats.h b/include/mastodont_chats.h index 0bb3ce0..b32c64c 100644 --- a/include/mastodont_chats.h +++ b/include/mastodont_chats.h @@ -79,7 +79,8 @@ int mastodont_get_chat(mastodont_t* data, struct mstdnt_storage* storage, struct mstdnt_chat* chat); -void mstdnt_cleanup_chats(struct mstdnt_chat* chats); +void mstdnt_cleanup_chat(struct mstdnt_chat* chat); +void mstdnt_cleanup_chats(struct mstdnt_chat* chats, size_t len); void mstdnt_cleanup_messages(struct mstdnt_message* chats); #endif // MASTODONT_CHATS_H diff --git a/src/chats.c b/src/chats.c index 6f0999f..a5d2117 100644 --- a/src/chats.c +++ b/src/chats.c @@ -199,9 +199,17 @@ int mastodont_get_chat(mastodont_t* data, return mastodont_request(data, m_args, &req_args); } -void mstdnt_cleanup_chats(struct mstdnt_chat* chats) +void mstdnt_cleanup_chat(struct mstdnt_chat* chat) +{ + mstdnt_cleanup_account(&(chat->account)); +} + + +void mstdnt_cleanup_chats(struct mstdnt_chat* chats, size_t len) { if (!chats) return; + for (size_t i = 0; i < len; ++i) + mstdnt_cleanup_chat(chats + i); free(chats); }