From 82e027806979ef01a58d99a836ed20e672019bd9 Mon Sep 17 00:00:00 2001 From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> Date: Mon, 29 Jan 2018 15:15:30 -0500 Subject: [PATCH] datatransfer: fix created signal fire Trigger "created" signal of data transfer after the id is registred, not before. This fix getTransfer() called in the created emit call scope. Change-Id: I0d02a3902c56fd60fced60d90248c6ac5e13ae41 Reviewed-by: Olivier Soldano <olivier.soldano@savoirfairelinux.com> --- src/data_transfer.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp index 7e1b9d530b..61289b77d9 100644 --- a/src/data_transfer.cpp +++ b/src/data_transfer.cpp @@ -139,8 +139,6 @@ FileTransfer::FileTransfer(DRing::DataTransferId tid, const DRing::DataTransferI input_.seekg(0, std::ios_base::end); info_.totalSize = input_.tellg(); input_.seekg(0, std::ios_base::beg); - - emit(DRing::DataTransferEventCode::created); } bool @@ -236,8 +234,6 @@ IncomingFileTransfer::IncomingFileTransfer(DRing::DataTransferId tid, info_ = info; info_.isOutgoing = false; - - emit(DRing::DataTransferEventCode::created); } std::streamsize @@ -355,8 +351,11 @@ DataTransferFacade::Impl::createFileTransfer(const DRing::DataTransferInfo& info { auto tid = generateUID(); auto transfer = std::make_shared<FileTransfer>(tid, info); - std::lock_guard<std::mutex> lk {mapMutex_}; - map_.emplace(tid, transfer); + { + std::lock_guard<std::mutex> lk {mapMutex_}; + map_.emplace(tid, transfer); + } + transfer->emit(DRing::DataTransferEventCode::created); return transfer; } @@ -365,8 +364,11 @@ DataTransferFacade::Impl::createIncomingFileTransfer(const DRing::DataTransferIn { auto tid = generateUID(); auto transfer = std::make_shared<IncomingFileTransfer>(tid, info); - std::lock_guard<std::mutex> lk {mapMutex_}; - map_.emplace(tid, transfer); + { + std::lock_guard<std::mutex> lk {mapMutex_}; + map_.emplace(tid, transfer); + } + transfer->emit(DRing::DataTransferEventCode::created); return transfer; } -- GitLab