diff options
author | 2023-02-24 13:53:18 -0800 | |
---|---|---|
committer | 2023-02-24 13:53:18 -0800 | |
commit | 6d5f0167c56e061bd4d8ee382e5ff894633f3e4b (patch) | |
tree | 6516b68f815b986c60a5f9df4d0fbe781732012c | |
parent | f290b049e80b3359a7551644d2180ab79fa3da96 (diff) | |
download | bun-6d5f0167c56e061bd4d8ee382e5ff894633f3e4b.tar.gz bun-6d5f0167c56e061bd4d8ee382e5ff894633f3e4b.tar.zst bun-6d5f0167c56e061bd4d8ee382e5ff894633f3e4b.zip |
Fix lol_html_rewriter_builder_add_document_content_handlers binding (#2161)
The `lol_html_rewriter_builder_add_document_content_handlers` does not return a
status code and always succeeds; errors are reported on subsequent calls to `write` or `end`.
Fixes #2024
-rw-r--r-- | src/bun.js/api/html_rewriter.zig | 5 | ||||
-rw-r--r-- | src/deps/lol-html.zig | 12 |
2 files changed, 6 insertions, 11 deletions
diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index 1c73223a4..881982d5e 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -162,6 +162,7 @@ pub const HTMLRewriter = struct { var handler = getAllocator(global).create(DocumentHandler) catch unreachable; handler.* = handler_; + // If this fails, subsequent calls to write or end should throw this.builder.addDocumentContentHandlers( DocumentHandler, DocumentHandler.onDocType, @@ -190,9 +191,7 @@ pub const HTMLRewriter = struct { handler else null, - ) catch { - return throwLOLHTMLError(global); - }; + ); this.context.document_handlers.append(bun.default_allocator, handler) catch unreachable; return JSValue.fromRef(thisObject); diff --git a/src/deps/lol-html.zig b/src/deps/lol-html.zig index f042bc111..bb4f4c371 100644 --- a/src/deps/lol-html.zig +++ b/src/deps/lol-html.zig @@ -83,7 +83,7 @@ pub const HTMLRewriter = opaque { text_handler_user_data: ?*anyopaque, doc_end_handler: ?lol_html_doc_end_handler_t, doc_end_user_data: ?*anyopaque, - ) c_int; + ) void; pub fn init() *HTMLRewriter.Builder { auto_disable(); @@ -121,10 +121,10 @@ pub const HTMLRewriter = opaque { comptime DocEndHandler: type, comptime end_tag_handler: ?DirectiveFunctionTypeForHandler(DocEnd, DocEndHandler), end_tag_handler_data: ?*DocEndHandler, - ) Error!void { + ) void { auto_disable(); - return switch (builder.lol_html_rewriter_builder_add_document_content_handlers( + builder.lol_html_rewriter_builder_add_document_content_handlers( if (doctype_handler_data != null) DirectiveHandler(DocType, DocTypeHandler, doctype_handler.?) else @@ -145,11 +145,7 @@ pub const HTMLRewriter = opaque { else null, end_tag_handler_data, - )) { - 0 => void{}, - -1 => error.Fail, - else => unreachable, - }; + ); } /// Adds element content handlers to the builder for the |