ksys/util: Add Task functions that were missed because of IDA's bad tail detection

This commit is contained in:
Léo Lam 2020-09-26 16:55:44 +02:00
parent cdf27ca63c
commit b2ce4e32ea
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
3 changed files with 17 additions and 5 deletions

View File

@ -90530,6 +90530,8 @@
0x00000071011f7d14,EventPlusString::setMainInvoker,36,_ZN4ksys4util4Task11setDelegateERKNS0_18TaskDelegateSetterE
0x00000071011f7d38,EventPlusString::submitRequest,544,_ZN4ksys4util4Task13submitRequestERNS0_11TaskRequestE?
0x00000071011f7f58,EventPlusString::u,124,_ZNK4ksys4util4Task16canSubmitRequestEv
0x00000071011f7fd4,_ZN4ksys4util4Task11setUserDataEPv,8,_ZN4ksys4util4Task11setUserDataEPv
0x00000071011f7fdc,_ZN4ksys4util4Task20setDelegateInternal_EPN4sead13AnyDelegate1RIPvbEE,0x58,_ZN4ksys4util4Task20setDelegateInternal_EPN4sead13AnyDelegate1RIPvbEE
0x00000071011f8034,EventPlusString::v,360,_ZN4ksys4util4Task30processOnCurrentThreadDirectlyEPNS0_10TaskThreadE
0x00000071011f819c,EventPlusString::p,28,_ZN4ksys4util4Task15removeFromQueueEv
0x00000071011f81b8,sub_71011F81B8,28,_ZN4ksys4util4Task16removeFromQueue2Ev

Can't render this file because it is too large.

View File

@ -84,11 +84,8 @@ bool Task::submitRequest(TaskRequest& request) {
request.mQueue = mQueue;
}
mUserData = request.mUserData;
if (auto* delegate = request.mDelegate) {
deleteDelegate_();
mFlags.set(Flag::DoNotDeleteDelegate);
mDelegate = delegate;
}
if (request.mDelegate)
setDelegateInternal_(request.mDelegate);
mRemoveCallback = request.mRemoveCallback;
mPostRunCallback = request.mPostRunCallback;
mName = request.mName;
@ -126,6 +123,17 @@ bool Task::canSubmitRequest() const {
return run_finished_on_current_thread || cond2;
}
void Task::setUserData(void* user_data) {
mUserData = user_data;
}
bool Task::setDelegateInternal_(TaskDelegate* delegate) {
deleteDelegate_();
mFlags.set(Flag::DoNotDeleteDelegate);
mDelegate = delegate;
return delegate != nullptr;
}
void Task::processOnCurrentThreadDirectly(TaskThread* thread) {
{
TaskQueueLock lock{thread};

View File

@ -150,7 +150,9 @@ protected:
virtual void preRemove_() {}
virtual void postRemove_() {}
bool setDelegateInternal_(TaskDelegate* delegate);
void setLaneId(u8 id);
void setUserData(void* user_data);
void setThread(TaskThread* thread);
void setStatusPushed();
void setStatusFetched();