| 7054 | } |
| 7055 | |
| 7056 | PUGI__FN const void* document_buffer_order(const xpath_node& xnode) |
| 7057 | { |
| 7058 | xml_node_struct* node = xnode.node().internal_object(); |
| 7059 | |
| 7060 | if (node) |
| 7061 | { |
| 7062 | if ((get_document(node).header & xml_memory_page_contents_shared_mask) == 0) |
| 7063 | { |
| 7064 | if (node->name && (node->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return node->name; |
| 7065 | if (node->value && (node->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return node->value; |
| 7066 | } |
| 7067 | |
| 7068 | return 0; |
| 7069 | } |
| 7070 | |
| 7071 | xml_attribute_struct* attr = xnode.attribute().internal_object(); |
| 7072 | |
| 7073 | if (attr) |
| 7074 | { |
| 7075 | if ((get_document(attr).header & xml_memory_page_contents_shared_mask) == 0) |
| 7076 | { |
| 7077 | if ((attr->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return attr->name; |
| 7078 | if ((attr->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return attr->value; |
| 7079 | } |
| 7080 | |
| 7081 | return 0; |
| 7082 | } |
| 7083 | |
| 7084 | return 0; |
| 7085 | } |
| 7086 | |
| 7087 | struct document_order_comparator |
| 7088 | { |
no test coverage detected