Correct priority cancellation handler signing once more

Resolves rdar://150378890 for real this time, verified on arm64e myself
This commit is contained in:
Konrad 'ktoso' Malawski
2025-06-02 21:30:17 +09:00
parent d49dd182ed
commit 2c99a669d3
3 changed files with 7 additions and 4 deletions

View File

@@ -1745,7 +1745,7 @@ namespace SpecialPointerAuthDiscriminators {
const uint16_t AsyncContextParent = 0xbda2; // = 48546
const uint16_t AsyncContextResume = 0xd707; // = 55047
const uint16_t AsyncContextYield = 0xe207; // = 57863
const uint16_t CancellationNotificationFunction = 0xf73; // = 3955 (TaskPriority, TaskPriority) -> Void
const uint16_t CancellationNotificationFunction = 0x0f08; // = 3848
const uint16_t EscalationNotificationFunction = 0x7861; // = 30817
const uint16_t AsyncThinNullaryFunction = 0x0f08; // = 3848
const uint16_t AsyncFutureFunction = 0x720f; // = 29199

View File

@@ -269,7 +269,7 @@ public:
/// subsequently used.
class EscalationNotificationStatusRecord : public TaskStatusRecord {
public:
using FunctionType = SWIFT_CC(swift) void(JobPriority, JobPriority, SWIFT_CONTEXT void *);
using FunctionType = SWIFT_CC(swift) void(uint8_t, uint8_t, SWIFT_CONTEXT void *);
private:
FunctionType *__ptrauth_swift_escalation_notification_function Function;
@@ -282,7 +282,10 @@ public:
}
void run(JobPriority oldPriority, JobPriority newPriority) {
Function(oldPriority, newPriority, Argument);
Function(
static_cast<size_t>(oldPriority),
static_cast<size_t>(newPriority),
Argument);
}
static bool classof(const TaskStatusRecord *record) {