mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-05-02 01:56:23 +00:00
Fix messing with std shared pointer and Qt memory managment.
This commit is contained in:
parent
697f9eb1d3
commit
6bd8cc4673
6 changed files with 8 additions and 7 deletions
|
|
@ -103,7 +103,7 @@ CallModel::CallModel (shared_ptr<linphone::Call> call){
|
|||
|
||||
// Update fields and make a search to know to who the call belong
|
||||
mMagicSearch = CoreManager::getInstance()->getCore()->createMagicSearch();
|
||||
mSearch = std::make_shared<SearchListener>(this);
|
||||
mSearch = std::make_shared<SearchListener>();
|
||||
QObject::connect(mSearch.get(), SIGNAL(searchReceived(std::list<std::shared_ptr<linphone::SearchResult>> )), this, SLOT(searchReceived(std::list<std::shared_ptr<linphone::SearchResult>>)));
|
||||
mMagicSearch->addListener(mSearch);
|
||||
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ ChatMessageModel::ChatMessageModel ( std::shared_ptr<linphone::ChatMessage> chat
|
|||
App::getInstance()->getEngine()->setObjectOwnership(this, QQmlEngine::CppOwnership);// Avoid QML to destroy it
|
||||
if(chatMessage){
|
||||
mParticipantImdnStateListModel = QSharedPointer<ParticipantImdnStateListModel>::create(chatMessage);
|
||||
mChatMessageListener = std::make_shared<ChatMessageListener>(parent);
|
||||
mChatMessageListener = std::make_shared<ChatMessageListener>();
|
||||
connectTo(mChatMessageListener.get());
|
||||
mChatMessage = chatMessage;
|
||||
mChatMessage->addListener(mChatMessageListener);
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ ChatRoomModel::ChatRoomModel (std::shared_ptr<linphone::ChatRoom> chatRoom, cons
|
|||
mCoreHandlers = coreManager->getHandlers();
|
||||
|
||||
mChatRoom = chatRoom;
|
||||
mChatRoomListener = std::make_shared<ChatRoomListener>(parent);
|
||||
mChatRoomListener = std::make_shared<ChatRoomListener>();
|
||||
connectTo(mChatRoomListener.get());
|
||||
mChatRoom->addListener(mChatRoomListener);
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ ParticipantDeviceModel::ParticipantDeviceModel (CallModel * callModel, std::shar
|
|||
mIsMe = isMe;
|
||||
mParticipantDevice = device;
|
||||
if( device) {
|
||||
mParticipantDeviceListener = std::make_shared<ParticipantDeviceListener>(nullptr);
|
||||
mParticipantDeviceListener = std::make_shared<ParticipantDeviceListener>();
|
||||
connectTo(mParticipantDeviceListener.get());
|
||||
device->addListener(mParticipantDeviceListener);
|
||||
mState = device->getState();
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ using namespace std;
|
|||
SearchSipAddressesModel::SearchSipAddressesModel (QObject *parent) : ProxyListModel(parent) {
|
||||
|
||||
mMagicSearch = CoreManager::getInstance()->getCore()->createMagicSearch();
|
||||
mSearch = std::make_shared<SearchListener>(this);
|
||||
mSearch = std::make_shared<SearchListener>();
|
||||
QObject::connect(mSearch.get(), &SearchListener::searchReceived, this, &SearchSipAddressesModel::searchReceived, Qt::QueuedConnection);
|
||||
mMagicSearch->addListener(mSearch);
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ TimelineModel::TimelineModel (std::shared_ptr<linphone::ChatRoom> chatRoom, cons
|
|||
QObject::connect(mChatRoomModel.get(), &ChatRoomModel::chatRoomDeleted, this, &TimelineModel::onChatRoomDeleted);
|
||||
}
|
||||
if(chatRoom){
|
||||
mChatRoomListener = std::make_shared<ChatRoomListener>(this);
|
||||
mChatRoomListener = std::make_shared<ChatRoomListener>();
|
||||
connectTo(mChatRoomListener.get());
|
||||
chatRoom->addListener(mChatRoomListener);
|
||||
}
|
||||
|
|
@ -117,7 +117,7 @@ QSharedPointer<TimelineModel> TimelineModel::clone()const{
|
|||
}
|
||||
|
||||
TimelineModel::~TimelineModel(){
|
||||
if(mChatRoomModel && mChatRoomModel->getChatRoom())
|
||||
if(mChatRoomModel && mChatRoomListener && mChatRoomModel->getChatRoom())
|
||||
mChatRoomModel->getChatRoom()->removeListener(mChatRoomListener);
|
||||
}
|
||||
|
||||
|
|
@ -178,6 +178,7 @@ void TimelineModel::onDefaultAccountChanged(){
|
|||
void TimelineModel::disconnectChatRoomListener(){
|
||||
if( mChatRoomModel && mChatRoomListener && mChatRoomModel->getChatRoom()){
|
||||
mChatRoomModel->getChatRoom()->removeListener(mChatRoomListener);
|
||||
mChatRoomListener = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue