mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-06-11 01:25:53 -04:00
add optional ctx to runNextTick
This commit is contained in:
@@ -191,11 +191,11 @@ fn layerWith(self: anytype, next: Layer) Layer {
|
||||
|
||||
pub const NextTickNode = struct {
|
||||
pub const Run =
|
||||
*const fn (*Transfer, *anyopaque) void;
|
||||
pub const Abort = *const fn (*anyopaque) void;
|
||||
*const fn (*Transfer, ?*anyopaque) void;
|
||||
pub const Abort = *const fn (?*anyopaque) void;
|
||||
|
||||
node: std.DoublyLinkedList.Node = .{},
|
||||
ctx: *anyopaque,
|
||||
ctx: ?*anyopaque,
|
||||
run: Run,
|
||||
abort: ?Abort = null,
|
||||
};
|
||||
@@ -473,7 +473,7 @@ pub fn tick(self: *Client, timeout_ms: u32, mode: DrainMode) !void {
|
||||
pub fn runNextTick(
|
||||
self: *Client,
|
||||
transfer: *Transfer,
|
||||
ctx: *anyopaque,
|
||||
ctx: ?*anyopaque,
|
||||
params: struct { run: NextTickNode.Run, abort: ?NextTickNode.Abort = null },
|
||||
) !void {
|
||||
transfer._next_tick_node = .{ .ctx = ctx, .run = params.run, .abort = params.abort };
|
||||
@@ -656,7 +656,7 @@ const Synthetic = struct {
|
||||
return std.mem.startsWith(u8, url, "data:") or std.mem.startsWith(u8, url, "blob:");
|
||||
}
|
||||
|
||||
fn run(transfer: *Transfer, _: *anyopaque) void {
|
||||
fn run(transfer: *Transfer, _: ?*anyopaque) void {
|
||||
// prevents a callback that triggers a navigation queue from killing
|
||||
// this transfer from under us.
|
||||
transfer.state = .completing;
|
||||
|
||||
@@ -76,18 +76,18 @@ fn request(ptr: *anyopaque, transfer: *Transfer) anyerror!void {
|
||||
|
||||
try transfer.client.runNextTick(transfer, ctx, .{
|
||||
.run = struct {
|
||||
fn run(t: *Transfer, ctx_ptr: *anyopaque) void {
|
||||
fn run(t: *Transfer, ctx_ptr: ?*anyopaque) void {
|
||||
defer t.deinit();
|
||||
|
||||
const c: *CachedResponse = @ptrCast(@alignCast(ctx_ptr));
|
||||
const c: *CachedResponse = @ptrCast(@alignCast(ctx_ptr.?));
|
||||
serveFromCache(&t.req, c) catch |err| {
|
||||
t.req.error_callback(t.req.ctx, err);
|
||||
};
|
||||
}
|
||||
}.run,
|
||||
.abort = struct {
|
||||
fn abort(ctx_ptr: *anyopaque) void {
|
||||
const c: *CachedResponse = @ptrCast(@alignCast(ctx_ptr));
|
||||
fn abort(ctx_ptr: ?*anyopaque) void {
|
||||
const c: *CachedResponse = @ptrCast(@alignCast(ctx_ptr.?));
|
||||
switch (c.data) {
|
||||
.buffer => |_| {},
|
||||
.file => |f| f.file.close(),
|
||||
|
||||
Reference in New Issue
Block a user