catch pointer overflows in createLookupKey

Its better to have this; if this is incorrect, its better to get notified.
This commit is contained in:
Halil Durak
2026-01-27 01:55:54 +03:00
parent 89174ba0b6
commit 6ad1a11593

View File

@@ -485,8 +485,10 @@ fn findListener(list: *const std.DoublyLinkedList, typ: []const u8, callback: Ca
}
/// Creates a lookup key to use with `inline_lookup`.
inline fn createLookupKey(event_target: *EventTarget, event_type: Listener.Type) usize {
return @intFromPtr(event_target) >> 3 | (@as(u64, @intFromEnum(event_type)) << 57);
fn createLookupKey(event_target: *EventTarget, event_type: Listener.Type) usize {
const ptr = @intFromPtr(event_target) >> 3;
lp.assert(ptr < (1 << 57), "createLookupKey: pointer overflow", .{ .ptr = ptr });
return ptr | (@as(u64, @intFromEnum(event_type)) << 57);
}
/// Returns listener type from `inline_lookup` key.