* xmlXPathNodeSetCreate: * @val: an initial xmlNodePtr, or NULL * * Create a new xmlNodeSetPtr of type double and of value @val * * Returns the newly created object. */
| 2766 | * Returns the newly created object. |
| 2767 | */ |
| 2768 | xmlNodeSetPtr |
| 2769 | xmlXPathNodeSetCreate(xmlNodePtr val) { |
| 2770 | xmlNodeSetPtr ret; |
| 2771 | |
| 2772 | ret = (xmlNodeSetPtr) xmlMalloc(sizeof(xmlNodeSet)); |
| 2773 | if (ret == NULL) |
| 2774 | return(NULL); |
| 2775 | memset(ret, 0 , sizeof(xmlNodeSet)); |
| 2776 | if (val != NULL) { |
| 2777 | ret->nodeTab = (xmlNodePtr *) xmlMalloc(XML_NODESET_DEFAULT * |
| 2778 | sizeof(xmlNodePtr)); |
| 2779 | if (ret->nodeTab == NULL) { |
| 2780 | xmlFree(ret); |
| 2781 | return(NULL); |
| 2782 | } |
| 2783 | memset(ret->nodeTab, 0 , |
| 2784 | XML_NODESET_DEFAULT * sizeof(xmlNodePtr)); |
| 2785 | ret->nodeMax = XML_NODESET_DEFAULT; |
| 2786 | if (val->type == XML_NAMESPACE_DECL) { |
| 2787 | xmlNsPtr ns = (xmlNsPtr) val; |
| 2788 | xmlNodePtr nsNode = xmlXPathNodeSetDupNs((xmlNodePtr) ns->next, ns); |
| 2789 | |
| 2790 | if (nsNode == NULL) { |
| 2791 | xmlXPathFreeNodeSet(ret); |
| 2792 | return(NULL); |
| 2793 | } |
| 2794 | ret->nodeTab[ret->nodeNr++] = nsNode; |
| 2795 | } else |
| 2796 | ret->nodeTab[ret->nodeNr++] = val; |
| 2797 | } |
| 2798 | return(ret); |
| 2799 | } |
| 2800 | |
| 2801 | /** |
| 2802 | * xmlXPathNodeSetContains: |
no test coverage detected