Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 008f4df3 authored by Jerry Zhang's avatar Jerry Zhang
Browse files

Stop capturing mtp_event by reference in lambda

This takes a reference to the event,
which then can become invalid. Instead
pass by copy like normal.

Bug: 64529223
Test: No crash
Change-Id: I2ac7bd0002e6d0ce1c547c24334dfd2926ed7090
(cherry picked from commit 7360303d)
parent a009b07a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -724,7 +724,7 @@ int MtpFfsHandle::sendEvent(mtp_event me) {
    char *temp = new char[me.length];
    memcpy(temp, me.data, me.length);
    me.data = temp;
    std::thread t([&me](MtpFfsHandle *h) { return h->doSendEvent(me); }, this);
    std::thread t([this, me]() { return this->doSendEvent(me); });
    t.detach();
    return 0;
}
@@ -732,9 +732,9 @@ int MtpFfsHandle::sendEvent(mtp_event me) {
void MtpFfsHandle::doSendEvent(mtp_event me) {
    unsigned length = me.length;
    int ret = ::write(mIntr, me.data, length);
    delete[] reinterpret_cast<char*>(me.data);
    if (static_cast<unsigned>(ret) != length)
        PLOG(ERROR) << "Mtp error sending event thread!";
    delete[] reinterpret_cast<char*>(me.data);
}

} // namespace android