From 87fa413ec44bfe82d472bfc17d68083b8d1f4cb9 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Fri, 20 Nov 2015 14:58:40 +0100 Subject: [PATCH] message_storage.c: do not rebuild peer address for each DB message since it is already available in chat room structure --- coreapi/message_storage.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 7b60a8e4a..3bf74f6ea 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -182,37 +182,31 @@ static int callback_all(void *data, int argc, char **argv, char **colName){ */ static int create_chat_message(void *data, int argc, char **argv, char **colName){ LinphoneChatRoom *cr = (LinphoneChatRoom *)data; - LinphoneAddress *from; - LinphoneAddress *to; unsigned int storage_id = atoi(argv[0]); // check if the message exists in the transient list, in which case we should return that one. LinphoneChatMessage* new_message = get_transient_message(cr, storage_id); if( new_message == NULL ){ + LinphoneAddress *local_addr=linphone_address_new(argv[1]); new_message = linphone_chat_room_create_message(cr, argv[4]); if(atoi(argv[3])==LinphoneChatMessageIncoming){ new_message->dir=LinphoneChatMessageIncoming; - from=linphone_address_new(argv[2]); - to=linphone_address_new(argv[1]); + linphone_chat_message_set_from(new_message,linphone_chat_room_get_peer_address(cr)); + linphone_chat_message_set_to(new_message,local_addr); } else { new_message->dir=LinphoneChatMessageOutgoing; - from=linphone_address_new(argv[1]); - to=linphone_address_new(argv[2]); - } - linphone_chat_message_set_from(new_message,from); - linphone_address_destroy(from); - if (to){ - linphone_chat_message_set_to(new_message,to); - linphone_address_destroy(to); + linphone_chat_message_set_from(new_message,local_addr); + linphone_chat_message_set_to(new_message,linphone_chat_room_get_peer_address(cr)); } + linphone_address_destroy(local_addr); new_message->time = (time_t)atol(argv[9]); new_message->is_read=atoi(argv[6]); new_message->state=atoi(argv[7]); new_message->storage_id=storage_id; new_message->external_body_url= ms_strdup(argv[8]); - new_message->appdata = ms_strdup(argv[10]); + new_message->appdata = ms_strdup(argv[10]); if (argv[11] != NULL) { int id = atoi(argv[11]);