userctx: document is not opational anymore

This commit is contained in:
Pierre Tachoire
2024-04-23 11:50:53 +02:00
parent 840aea9013
commit c2e64c131a
5 changed files with 12 additions and 22 deletions

View File

@@ -34,10 +34,8 @@ pub const Comment = struct {
pub const mem_guarantied = true;
pub fn constructor(userctx: UserContext, data: ?[]const u8) !*parser.Comment {
if (userctx.document == null) return parser.DOMError.NotSupported;
return parser.documentCreateComment(
parser.documentHTMLToDocument(userctx.document.?),
parser.documentHTMLToDocument(userctx.document),
data orelse "",
);
}

View File

@@ -49,19 +49,15 @@ pub const Document = struct {
pub const mem_guarantied = true;
pub fn constructor(userctx: UserContext) !*parser.DocumentHTML {
var title: ?[]const u8 = null;
if (userctx.document) |cur| {
title = try parser.documentHTMLGetTitle(cur);
}
const doc = try parser.documentCreateDocument(title);
const doc = try parser.documentCreateDocument(
try parser.documentHTMLGetTitle(userctx.document),
);
if (userctx.document) |cur| {
// we have to work w/ document instead of html document.
const ddoc = parser.documentHTMLToDocument(doc);
const ccur = parser.documentHTMLToDocument(cur);
const ccur = parser.documentHTMLToDocument(userctx.document);
try parser.documentSetDocumentURI(ddoc, try parser.documentGetDocumentURI(ccur));
try parser.documentSetInputEncoding(ddoc, try parser.documentGetInputEncoding(ccur));
}
return doc;
}

View File

@@ -35,10 +35,8 @@ pub const DocumentFragment = struct {
pub const mem_guarantied = true;
pub fn constructor(userctx: UserContext) !*parser.DocumentFragment {
if (userctx.document == null) return parser.DOMError.NotSupported;
return parser.documentCreateDocumentFragment(
parser.documentHTMLToDocument(userctx.document.?),
parser.documentHTMLToDocument(userctx.document),
);
}
};

View File

@@ -41,10 +41,8 @@ pub const Text = struct {
pub const mem_guarantied = true;
pub fn constructor(userctx: UserContext, data: ?[]const u8) !*parser.Text {
if (userctx.document == null) return parser.DOMError.NotSupported;
return parser.documentCreateTextNode(
parser.documentHTMLToDocument(userctx.document.?),
parser.documentHTMLToDocument(userctx.document),
data orelse "",
);
}

View File

@@ -2,5 +2,5 @@ const std = @import("std");
const parser = @import("netsurf.zig");
pub const UserContext = struct {
document: ?*parser.DocumentHTML,
document: *parser.DocumentHTML,
};