summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2018-08-12 20:34:45 +0000
committeriphydf <iphydf@users.noreply.github.com>2018-08-12 21:10:27 +0000
commit6d8d80b38726992330e776360d79b0d247570da3 (patch)
treebf0abd6dc105564948396fa19c9af6cfd9245d9a
parentd56ab5aaff5fab7ac707a5c914d3701f43eb2ba3 (diff)
Make `conferences_object` properly typed.
The void pointer here only adds opportunity to introduce bugs and doesn't actually make things more layered. It's just the code lying about being layered while it's actually spaghetti.
-rw-r--r--toxav/toxav_old.c6
-rw-r--r--toxcore/Messenger.h2
-rw-r--r--toxcore/group.c2
-rw-r--r--toxcore/tox.c56
4 files changed, 33 insertions, 33 deletions
diff --git a/toxav/toxav_old.c b/toxav/toxav_old.c
index d5278623..24b4f1ec 100644
--- a/toxav/toxav_old.c
+++ b/toxav/toxav_old.c
@@ -39,7 +39,7 @@ int toxav_add_av_groupchat(Tox *tox, void (*audio_callback)(void *, uint32_t, ui
39 uint8_t, uint32_t, void *), void *userdata) 39 uint8_t, uint32_t, void *), void *userdata)
40{ 40{
41 Messenger *m = (Messenger *)tox; 41 Messenger *m = (Messenger *)tox;
42 return add_av_groupchat(m->log, (Group_Chats *)m->conferences_object, 42 return add_av_groupchat(m->log, m->conferences_object,
43 (void (*)(Messenger *, uint32_t, uint32_t, const int16_t *, unsigned int, uint8_t, uint32_t, void *))audio_callback, 43 (void (*)(Messenger *, uint32_t, uint32_t, const int16_t *, unsigned int, uint8_t, uint32_t, void *))audio_callback,
44 userdata); 44 userdata);
45} 45}
@@ -60,7 +60,7 @@ int toxav_join_av_groupchat(Tox *tox, uint32_t friendnumber, const uint8_t *data
60 void *userdata) 60 void *userdata)
61{ 61{
62 Messenger *m = (Messenger *)tox; 62 Messenger *m = (Messenger *)tox;
63 return join_av_groupchat(m->log, (Group_Chats *)m->conferences_object, friendnumber, data, length, 63 return join_av_groupchat(m->log, m->conferences_object, friendnumber, data, length,
64 (void (*)(Messenger *, uint32_t, uint32_t, const int16_t *, unsigned int, uint8_t, uint32_t, void *))audio_callback, 64 (void (*)(Messenger *, uint32_t, uint32_t, const int16_t *, unsigned int, uint8_t, uint32_t, void *))audio_callback,
65 userdata); 65 userdata);
66} 66}
@@ -82,5 +82,5 @@ int toxav_group_send_audio(Tox *tox, uint32_t groupnumber, const int16_t *pcm, u
82 uint32_t sample_rate) 82 uint32_t sample_rate)
83{ 83{
84 Messenger *m = (Messenger *)tox; 84 Messenger *m = (Messenger *)tox;
85 return group_send_audio((Group_Chats *)m->conferences_object, groupnumber, pcm, samples, channels, sample_rate); 85 return group_send_audio(m->conferences_object, groupnumber, pcm, samples, channels, sample_rate);
86} 86}
diff --git a/toxcore/Messenger.h b/toxcore/Messenger.h
index 8cab9801..6fc4df02 100644
--- a/toxcore/Messenger.h
+++ b/toxcore/Messenger.h
@@ -272,7 +272,7 @@ struct Messenger {
272 m_friend_connectionstatuschange_internal_cb *friend_connectionstatuschange_internal; 272 m_friend_connectionstatuschange_internal_cb *friend_connectionstatuschange_internal;
273 void *friend_connectionstatuschange_internal_userdata; 273 void *friend_connectionstatuschange_internal_userdata;
274 274
275 void *conferences_object; /* Set by new_groupchats()*/ 275 struct Group_Chats *conferences_object; /* Set by new_groupchats()*/
276 m_conference_invite_cb *conference_invite; 276 m_conference_invite_cb *conference_invite;
277 277
278 m_file_recv_cb *file_sendrequest; 278 m_file_recv_cb *file_sendrequest;
diff --git a/toxcore/group.c b/toxcore/group.c
index 75b8697b..1ef3d374 100644
--- a/toxcore/group.c
+++ b/toxcore/group.c
@@ -1423,7 +1423,7 @@ int group_title_get(const Group_Chats *g_c, uint32_t groupnumber, uint8_t *title
1423static void handle_friend_invite_packet(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t length, 1423static void handle_friend_invite_packet(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t length,
1424 void *userdata) 1424 void *userdata)
1425{ 1425{
1426 Group_Chats *g_c = (Group_Chats *)m->conferences_object; 1426 Group_Chats *g_c = m->conferences_object;
1427 1427
1428 if (length <= 1) { 1428 if (length <= 1) {
1429 return; 1429 return;
diff --git a/toxcore/tox.c b/toxcore/tox.c
index 2ccbef82..b2ea1969 100644
--- a/toxcore/tox.c
+++ b/toxcore/tox.c
@@ -497,12 +497,12 @@ Tox *tox_new(const struct Tox_Options *options, Tox_Err_New *error)
497 callback_file_reqchunk(m, tox_file_chunk_request_handler); 497 callback_file_reqchunk(m, tox_file_chunk_request_handler);
498 callback_file_sendrequest(m, tox_file_recv_handler); 498 callback_file_sendrequest(m, tox_file_recv_handler);
499 callback_file_data(m, tox_file_recv_chunk_handler); 499 callback_file_data(m, tox_file_recv_chunk_handler);
500 g_callback_group_invite((Group_Chats *)m->conferences_object, tox_conference_invite_handler); 500 g_callback_group_invite(m->conferences_object, tox_conference_invite_handler);
501 g_callback_group_connected((Group_Chats *)m->conferences_object, tox_conference_connected_handler); 501 g_callback_group_connected(m->conferences_object, tox_conference_connected_handler);
502 g_callback_group_message((Group_Chats *)m->conferences_object, tox_conference_message_handler); 502 g_callback_group_message(m->conferences_object, tox_conference_message_handler);
503 g_callback_group_title((Group_Chats *)m->conferences_object, tox_conference_title_handler); 503 g_callback_group_title(m->conferences_object, tox_conference_title_handler);
504 g_callback_peer_name((Group_Chats *)m->conferences_object, tox_conference_peer_name_handler); 504 g_callback_peer_name(m->conferences_object, tox_conference_peer_name_handler);
505 g_callback_peer_list_changed((Group_Chats *)m->conferences_object, tox_conference_peer_list_changed_handler); 505 g_callback_peer_list_changed(m->conferences_object, tox_conference_peer_list_changed_handler);
506 custom_lossy_packet_registerhandler(m, tox_friend_lossy_packet_handler); 506 custom_lossy_packet_registerhandler(m, tox_friend_lossy_packet_handler);
507 custom_lossless_packet_registerhandler(m, tox_friend_lossless_packet_handler); 507 custom_lossless_packet_registerhandler(m, tox_friend_lossless_packet_handler);
508 508
@@ -517,7 +517,7 @@ void tox_kill(Tox *tox)
517 } 517 }
518 518
519 Messenger *m = tox->m; 519 Messenger *m = tox->m;
520 kill_groupchats((Group_Chats *)m->conferences_object); 520 kill_groupchats(m->conferences_object);
521 kill_messenger(m); 521 kill_messenger(m);
522 free(tox); 522 free(tox);
523} 523}
@@ -656,7 +656,7 @@ void tox_iterate(Tox *tox, void *user_data)
656 Messenger *m = tox->m; 656 Messenger *m = tox->m;
657 struct Tox_Userdata tox_data = { tox, user_data }; 657 struct Tox_Userdata tox_data = { tox, user_data };
658 do_messenger(m, &tox_data); 658 do_messenger(m, &tox_data);
659 do_groupchats((Group_Chats *)m->conferences_object, &tox_data); 659 do_groupchats(m->conferences_object, &tox_data);
660} 660}
661 661
662void tox_self_get_address(const Tox *tox, uint8_t *address) 662void tox_self_get_address(const Tox *tox, uint8_t *address)
@@ -708,7 +708,7 @@ bool tox_self_set_name(Tox *tox, const uint8_t *name, size_t length, Tox_Err_Set
708 708
709 if (setname(m, name, length) == 0) { 709 if (setname(m, name, length) == 0) {
710 // TODO(irungentoo): function to set different per group names? 710 // TODO(irungentoo): function to set different per group names?
711 send_name_all_groups((Group_Chats *)m->conferences_object); 711 send_name_all_groups(m->conferences_object);
712 SET_ERROR_PARAMETER(error, TOX_ERR_SET_INFO_OK); 712 SET_ERROR_PARAMETER(error, TOX_ERR_SET_INFO_OK);
713 return 1; 713 return 1;
714 } 714 }
@@ -1425,7 +1425,7 @@ void tox_callback_conference_peer_list_changed(Tox *tox, tox_conference_peer_lis
1425uint32_t tox_conference_new(Tox *tox, Tox_Err_Conference_New *error) 1425uint32_t tox_conference_new(Tox *tox, Tox_Err_Conference_New *error)
1426{ 1426{
1427 Messenger *m = tox->m; 1427 Messenger *m = tox->m;
1428 int ret = add_groupchat((Group_Chats *)m->conferences_object, GROUPCHAT_TYPE_TEXT); 1428 int ret = add_groupchat(m->conferences_object, GROUPCHAT_TYPE_TEXT);
1429 1429
1430 if (ret == -1) { 1430 if (ret == -1) {
1431 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_NEW_INIT); 1431 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_NEW_INIT);
@@ -1439,7 +1439,7 @@ uint32_t tox_conference_new(Tox *tox, Tox_Err_Conference_New *error)
1439bool tox_conference_delete(Tox *tox, uint32_t conference_number, Tox_Err_Conference_Delete *error) 1439bool tox_conference_delete(Tox *tox, uint32_t conference_number, Tox_Err_Conference_Delete *error)
1440{ 1440{
1441 Messenger *m = tox->m; 1441 Messenger *m = tox->m;
1442 int ret = del_groupchat((Group_Chats *)m->conferences_object, conference_number); 1442 int ret = del_groupchat(m->conferences_object, conference_number);
1443 1443
1444 if (ret == -1) { 1444 if (ret == -1) {
1445 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_DELETE_CONFERENCE_NOT_FOUND); 1445 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_DELETE_CONFERENCE_NOT_FOUND);
@@ -1453,7 +1453,7 @@ bool tox_conference_delete(Tox *tox, uint32_t conference_number, Tox_Err_Confere
1453uint32_t tox_conference_peer_count(const Tox *tox, uint32_t conference_number, Tox_Err_Conference_Peer_Query *error) 1453uint32_t tox_conference_peer_count(const Tox *tox, uint32_t conference_number, Tox_Err_Conference_Peer_Query *error)
1454{ 1454{
1455 const Messenger *m = tox->m; 1455 const Messenger *m = tox->m;
1456 int ret = group_number_peers((Group_Chats *)m->conferences_object, conference_number); 1456 int ret = group_number_peers(m->conferences_object, conference_number);
1457 1457
1458 if (ret == -1) { 1458 if (ret == -1) {
1459 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_PEER_QUERY_CONFERENCE_NOT_FOUND); 1459 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_PEER_QUERY_CONFERENCE_NOT_FOUND);
@@ -1468,7 +1468,7 @@ size_t tox_conference_peer_get_name_size(const Tox *tox, uint32_t conference_num
1468 Tox_Err_Conference_Peer_Query *error) 1468 Tox_Err_Conference_Peer_Query *error)
1469{ 1469{
1470 const Messenger *m = tox->m; 1470 const Messenger *m = tox->m;
1471 int ret = group_peername_size((Group_Chats *)m->conferences_object, conference_number, peer_number); 1471 int ret = group_peername_size(m->conferences_object, conference_number, peer_number);
1472 1472
1473 switch (ret) { 1473 switch (ret) {
1474 case -1: 1474 case -1:
@@ -1488,7 +1488,7 @@ bool tox_conference_peer_get_name(const Tox *tox, uint32_t conference_number, ui
1488 Tox_Err_Conference_Peer_Query *error) 1488 Tox_Err_Conference_Peer_Query *error)
1489{ 1489{
1490 const Messenger *m = tox->m; 1490 const Messenger *m = tox->m;
1491 int ret = group_peername((Group_Chats *)m->conferences_object, conference_number, peer_number, name); 1491 int ret = group_peername(m->conferences_object, conference_number, peer_number, name);
1492 1492
1493 switch (ret) { 1493 switch (ret) {
1494 case -1: 1494 case -1:
@@ -1508,7 +1508,7 @@ bool tox_conference_peer_get_public_key(const Tox *tox, uint32_t conference_numb
1508 uint8_t *public_key, Tox_Err_Conference_Peer_Query *error) 1508 uint8_t *public_key, Tox_Err_Conference_Peer_Query *error)
1509{ 1509{
1510 const Messenger *m = tox->m; 1510 const Messenger *m = tox->m;
1511 int ret = group_peer_pubkey((Group_Chats *)m->conferences_object, conference_number, peer_number, public_key); 1511 int ret = group_peer_pubkey(m->conferences_object, conference_number, peer_number, public_key);
1512 1512
1513 switch (ret) { 1513 switch (ret) {
1514 case -1: 1514 case -1:
@@ -1528,7 +1528,7 @@ bool tox_conference_peer_number_is_ours(const Tox *tox, uint32_t conference_numb
1528 Tox_Err_Conference_Peer_Query *error) 1528 Tox_Err_Conference_Peer_Query *error)
1529{ 1529{
1530 const Messenger *m = tox->m; 1530 const Messenger *m = tox->m;
1531 int ret = group_peernumber_is_ours((Group_Chats *)m->conferences_object, conference_number, peer_number); 1531 int ret = group_peernumber_is_ours(m->conferences_object, conference_number, peer_number);
1532 1532
1533 switch (ret) { 1533 switch (ret) {
1534 case -1: 1534 case -1:
@@ -1552,7 +1552,7 @@ bool tox_conference_invite(Tox *tox, uint32_t friend_number, uint32_t conference
1552 Tox_Err_Conference_Invite *error) 1552 Tox_Err_Conference_Invite *error)
1553{ 1553{
1554 Messenger *m = tox->m; 1554 Messenger *m = tox->m;
1555 int ret = invite_friend((Group_Chats *)m->conferences_object, friend_number, conference_number); 1555 int ret = invite_friend(m->conferences_object, friend_number, conference_number);
1556 1556
1557 switch (ret) { 1557 switch (ret) {
1558 case -1: 1558 case -1:
@@ -1576,7 +1576,7 @@ uint32_t tox_conference_join(Tox *tox, uint32_t friend_number, const uint8_t *co
1576 Tox_Err_Conference_Join *error) 1576 Tox_Err_Conference_Join *error)
1577{ 1577{
1578 Messenger *m = tox->m; 1578 Messenger *m = tox->m;
1579 int ret = join_groupchat((Group_Chats *)m->conferences_object, friend_number, GROUPCHAT_TYPE_TEXT, cookie, length); 1579 int ret = join_groupchat(m->conferences_object, friend_number, GROUPCHAT_TYPE_TEXT, cookie, length);
1580 1580
1581 switch (ret) { 1581 switch (ret) {
1582 case -1: 1582 case -1:
@@ -1615,9 +1615,9 @@ bool tox_conference_send_message(Tox *tox, uint32_t conference_number, Tox_Messa
1615 int ret = 0; 1615 int ret = 0;
1616 1616
1617 if (type == TOX_MESSAGE_TYPE_NORMAL) { 1617 if (type == TOX_MESSAGE_TYPE_NORMAL) {
1618 ret = group_message_send((Group_Chats *)m->conferences_object, conference_number, message, length); 1618 ret = group_message_send(m->conferences_object, conference_number, message, length);
1619 } else { 1619 } else {
1620 ret = group_action_send((Group_Chats *)m->conferences_object, conference_number, message, length); 1620 ret = group_action_send(m->conferences_object, conference_number, message, length);
1621 } 1621 }
1622 1622
1623 switch (ret) { 1623 switch (ret) {
@@ -1645,7 +1645,7 @@ bool tox_conference_send_message(Tox *tox, uint32_t conference_number, Tox_Messa
1645size_t tox_conference_get_title_size(const Tox *tox, uint32_t conference_number, Tox_Err_Conference_Title *error) 1645size_t tox_conference_get_title_size(const Tox *tox, uint32_t conference_number, Tox_Err_Conference_Title *error)
1646{ 1646{
1647 const Messenger *m = tox->m; 1647 const Messenger *m = tox->m;
1648 int ret = group_title_get_size((Group_Chats *)m->conferences_object, conference_number); 1648 int ret = group_title_get_size(m->conferences_object, conference_number);
1649 1649
1650 switch (ret) { 1650 switch (ret) {
1651 case -1: 1651 case -1:
@@ -1665,7 +1665,7 @@ bool tox_conference_get_title(const Tox *tox, uint32_t conference_number, uint8_
1665 Tox_Err_Conference_Title *error) 1665 Tox_Err_Conference_Title *error)
1666{ 1666{
1667 const Messenger *m = tox->m; 1667 const Messenger *m = tox->m;
1668 int ret = group_title_get((Group_Chats *)m->conferences_object, conference_number, title); 1668 int ret = group_title_get(m->conferences_object, conference_number, title);
1669 1669
1670 switch (ret) { 1670 switch (ret) {
1671 case -1: 1671 case -1:
@@ -1685,7 +1685,7 @@ bool tox_conference_set_title(Tox *tox, uint32_t conference_number, const uint8_
1685 Tox_Err_Conference_Title *error) 1685 Tox_Err_Conference_Title *error)
1686{ 1686{
1687 Messenger *m = tox->m; 1687 Messenger *m = tox->m;
1688 int ret = group_title_send((Group_Chats *)m->conferences_object, conference_number, title, length); 1688 int ret = group_title_send(m->conferences_object, conference_number, title, length);
1689 1689
1690 switch (ret) { 1690 switch (ret) {
1691 case -1: 1691 case -1:
@@ -1708,21 +1708,21 @@ bool tox_conference_set_title(Tox *tox, uint32_t conference_number, const uint8_
1708size_t tox_conference_get_chatlist_size(const Tox *tox) 1708size_t tox_conference_get_chatlist_size(const Tox *tox)
1709{ 1709{
1710 const Messenger *m = tox->m; 1710 const Messenger *m = tox->m;
1711 return count_chatlist((Group_Chats *)m->conferences_object); 1711 return count_chatlist(m->conferences_object);
1712} 1712}
1713 1713
1714void tox_conference_get_chatlist(const Tox *tox, uint32_t *chatlist) 1714void tox_conference_get_chatlist(const Tox *tox, uint32_t *chatlist)
1715{ 1715{
1716 const Messenger *m = tox->m; 1716 const Messenger *m = tox->m;
1717 size_t list_size = tox_conference_get_chatlist_size(tox); 1717 size_t list_size = tox_conference_get_chatlist_size(tox);
1718 copy_chatlist((Group_Chats *)m->conferences_object, chatlist, list_size); 1718 copy_chatlist(m->conferences_object, chatlist, list_size);
1719} 1719}
1720 1720
1721Tox_Conference_Type tox_conference_get_type(const Tox *tox, uint32_t conference_number, 1721Tox_Conference_Type tox_conference_get_type(const Tox *tox, uint32_t conference_number,
1722 Tox_Err_Conference_Get_Type *error) 1722 Tox_Err_Conference_Get_Type *error)
1723{ 1723{
1724 const Messenger *m = tox->m; 1724 const Messenger *m = tox->m;
1725 int ret = group_get_type((Group_Chats *)m->conferences_object, conference_number); 1725 int ret = group_get_type(m->conferences_object, conference_number);
1726 1726
1727 if (ret == -1) { 1727 if (ret == -1) {
1728 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_GET_TYPE_CONFERENCE_NOT_FOUND); 1728 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_GET_TYPE_CONFERENCE_NOT_FOUND);
@@ -1735,7 +1735,7 @@ Tox_Conference_Type tox_conference_get_type(const Tox *tox, uint32_t conference_
1735 1735
1736bool tox_conference_get_id(const Tox *tox, uint32_t conference_number, uint8_t *id /* TOX_CONFERENCE_ID_SIZE bytes */) 1736bool tox_conference_get_id(const Tox *tox, uint32_t conference_number, uint8_t *id /* TOX_CONFERENCE_ID_SIZE bytes */)
1737{ 1737{
1738 return conference_get_id((Group_Chats *)tox->m->conferences_object, conference_number, id); 1738 return conference_get_id(tox->m->conferences_object, conference_number, id);
1739} 1739}
1740 1740
1741// TODO(iphydf): Delete in 0.3.0. 1741// TODO(iphydf): Delete in 0.3.0.
@@ -1751,7 +1751,7 @@ uint32_t tox_conference_by_id(const Tox *tox, const uint8_t *id, Tox_Err_Confere
1751 return UINT32_MAX; 1751 return UINT32_MAX;
1752 } 1752 }
1753 1753
1754 int32_t ret = conference_by_id((Group_Chats *)tox->m->conferences_object, id); 1754 int32_t ret = conference_by_id(tox->m->conferences_object, id);
1755 1755
1756 if (ret == -1) { 1756 if (ret == -1) {
1757 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_BY_ID_NOT_FOUND); 1757 SET_ERROR_PARAMETER(error, TOX_ERR_CONFERENCE_BY_ID_NOT_FOUND);