22#if defined(HAVE_LIBXML) && defined(HAVE_DOM)
50 private_data->
header.dtor = php_dom_libxml_private_data_destroy;
51 private_data->
header.ns_hook = php_dom_libxml_private_data_ns_hook;
62 if (
data->template_fragments !=
NULL) {
81 xmlNodePtr
current = base->children;
102 zend_hash_index_add_new_ptr(private_data->
template_fragments, dom_mangle_pointer_for_key(template_node), fragment);
111 return zend_hash_index_find_ptr(private_data->
template_fragments, dom_mangle_pointer_for_key(template_node));
118 result = xmlNewDocFragment(template_node->doc);
120 result->parent = template_node;
140 php_dom_free_templated_content(private_data, node);
156 xmlNsPtr ns =
pemalloc(
sizeof(*ns),
true);
159 memset(ns, 0,
sizeof(*ns));
160 ns->prefix = xmlStrdup(element->ns->prefix);
161 ns->href = xmlStrdup(element->ns->href);
163 ns->_private = (
void *) ((uintptr_t) private_data | LIBXML_NS_TAG_HOOK);
166 php_libxml_set_old_ns(element->doc, ns);
header(string $header, bool $replace=true, int $response_code=0)
memset(ptr, 0, type->size)
const XML_LOCAL_NAMESPACE
#define offsetof(STRUCTURE, FIELD)
void php_dom_private_data_destroy(php_dom_private_data *data)
void php_dom_add_templated_content(php_dom_private_data *private_data, const xmlNode *template_node, xmlNodePtr fragment)
php_dom_private_data * php_dom_private_data_create(void)
xmlNodePtr php_dom_ensure_templated_content(php_dom_private_data *private_data, xmlNodePtr template_node)
struct php_libxml_private_data_header php_libxml_private_data_header
uint32_t php_dom_get_template_count(const php_dom_private_data *private_data)
php_dom_libxml_ns_mapper * php_dom_ns_mapper_from_private(php_dom_private_data *private_data)
void dom_add_element_ns_hook(php_dom_private_data *private_data, xmlNodePtr element)
php_libxml_private_data_header * php_dom_libxml_private_data_header(php_dom_private_data *private_data)
void php_dom_remove_templated_content(php_dom_private_data *private_data, const xmlNode *template_node)
xmlNodePtr php_dom_retrieve_templated_content(php_dom_private_data *private_data, const xmlNode *template_node)
HashTable uri_to_prefix_map
xmlNsPtr prefixless_xmlns_ns
struct php_dom_libxml_ns_mapper ns_mapper
HashTable * template_fragments
php_libxml_private_data_header header
#define pemalloc(size, persistent)
#define FREE_HASHTABLE(ht)
#define ALLOC_HASHTABLE(ht)
ZEND_API void ZEND_FASTCALL zend_hash_destroy(HashTable *ht)
ZEND_API void ZEND_FASTCALL zend_hash_del_bucket(HashTable *ht, Bucket *p)
ZEND_API void ZEND_FASTCALL zend_hash_real_init_mixed(HashTable *ht)
ZEND_API zval *ZEND_FASTCALL zend_hash_index_find(const HashTable *ht, zend_ulong h)
#define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent)
#define ZEND_HASH_MAP_FOREACH_PTR(ht, _ptr)
#define ZEND_HASH_FOREACH_END()
#define EXPECTED(condition)