From 81ff3c8813d3cd42a3624f903731c63400aec2fe Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Mon, 27 Nov 2017 11:55:51 +0100 Subject: [PATCH] fix index issue in data base --- src/c-wrapper/api/c-chat-room.cpp | 5 ++++- src/db/main-db.cpp | 13 +++++-------- src/db/main-db.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/c-wrapper/api/c-chat-room.cpp b/src/c-wrapper/api/c-chat-room.cpp index 90ffa6a66..97b982352 100644 --- a/src/c-wrapper/api/c-chat-room.cpp +++ b/src/c-wrapper/api/c-chat-room.cpp @@ -218,7 +218,10 @@ bctbx_list_t *linphone_chat_room_get_history_range_events (LinphoneChatRoom *cr, } LinphoneChatMessage *linphone_chat_room_get_last_message_in_history(LinphoneChatRoom *cr) { - return L_GET_C_BACK_PTR(L_GET_CPP_PTR_FROM_C_OBJECT(cr)->getLastMessageInHistory()); + shared_ptr cppPtr = L_GET_CPP_PTR_FROM_C_OBJECT(cr)->getLastMessageInHistory(); + LinphoneChatMessage *object = L_INIT(ChatMessage); + L_SET_CPP_PTR_FROM_C_OBJECT(object, cppPtr); + return object; } LinphoneChatMessage *linphone_chat_room_find_message (LinphoneChatRoom *cr, const char *message_id) { diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index c7804c371..198e1b971 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -1391,19 +1391,16 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), return list>(); } - shared_ptr MainDb::getLastChatMessage(const ChatRoomId &chatRoomId) const { - list> chatList = getHistory (chatRoomId, 1, Filter::ConferenceChatMessageFilter); - if (chatList.size() == 0) + shared_ptr MainDb::getLastChatMessage (const ChatRoomId &chatRoomId) const { + list> chatList = getHistory(chatRoomId, 1, Filter::ConferenceChatMessageFilter); + if (chatList.empty()) return nullptr; - L_ASSERT(chatList.size() == 1); - shared_ptr chatEvent = chatList.front(); - L_ASSERT(chatEvent->getType() == EventLog::Type::ConferenceChatMessage); - return static_pointer_cast(chatEvent)->getChatMessage(); + return static_pointer_cast(chatList.front())->getChatMessage(); } list> MainDb::getHistory (const ChatRoomId &chatRoomId, int nLast, FilterMask mask) const { - return getHistoryRange(chatRoomId, 0, nLast - 1, mask); + return getHistoryRange(chatRoomId, 0, nLast, mask); } list> MainDb::getHistoryRange ( diff --git a/src/db/main-db.h b/src/db/main-db.h index 28e09437e..c9303b8c1 100644 --- a/src/db/main-db.h +++ b/src/db/main-db.h @@ -77,7 +77,7 @@ public: int getUnreadChatMessagesCount (const ChatRoomId &chatRoomId = ChatRoomId()) const; void markChatMessagesAsRead (const ChatRoomId &chatRoomId = ChatRoomId()) const; std::list> getUnreadChatMessages (const ChatRoomId &chatRoomId = ChatRoomId()) const; - std::shared_ptr getLastChatMessage(const ChatRoomId &chatRoomId = ChatRoomId()) const; + std::shared_ptr getLastChatMessage (const ChatRoomId &chatRoomId = ChatRoomId()) const; // --------------------------------------------------------------------------- // Conference events.