1 /*
2  * Copyright (C) 2018-2021 Alexander Borisov
3  *
4  * Author: Alexander Borisov <borisov@lexbor.com>
5  */
6 
7 #include "lexbor/dom/interfaces/shadow_root.h"
8 #include "lexbor/dom/interfaces/document.h"
9 
10 
11 lxb_dom_shadow_root_t *
lxb_dom_shadow_root_interface_create(lxb_dom_document_t * document)12 lxb_dom_shadow_root_interface_create(lxb_dom_document_t *document)
13 {
14     lxb_dom_shadow_root_t *element;
15 
16     element = lexbor_mraw_calloc(document->mraw,
17                                  sizeof(lxb_dom_shadow_root_t));
18     if (element == NULL) {
19         return NULL;
20     }
21 
22     lxb_dom_node_t *node = lxb_dom_interface_node(element);
23 
24     node->owner_document = lxb_dom_document_owner(document);
25     node->type = LXB_DOM_NODE_TYPE_UNDEF;
26 
27     return element;
28 }
29 
30 lxb_dom_shadow_root_t *
lxb_dom_shadow_root_interface_destroy(lxb_dom_shadow_root_t * shadow_root)31 lxb_dom_shadow_root_interface_destroy(lxb_dom_shadow_root_t *shadow_root)
32 {
33     (void) lxb_dom_document_fragment_interface_destroy(
34                         lxb_dom_interface_document_fragment(shadow_root));
35     return NULL;
36 }
37