MCPcopy Create free account
hub / github.com/Kitware/VTK / xmlXPathCacheObjectCopy

Function xmlXPathCacheObjectCopy

ThirdParty/libxml2/vtklibxml2/xpath.c:1940–1975  ·  view source on GitHub ↗

* xmlXPathCacheObjectCopy: * @pctxt the XPath context * @val: the original object * * This is the cached version of xmlXPathObjectCopy(). * Acquire a copy of a given object * * Returns a created or reused created object. */

Source from the content-addressed store, hash-verified

1938 * Returns a created or reused created object.
1939 */
1940static xmlXPathObjectPtr
1941xmlXPathCacheObjectCopy(xmlXPathParserContextPtr pctxt, xmlXPathObjectPtr val)
1942{
1943 xmlXPathObjectPtr ret;
1944 xmlXPathContextPtr ctxt = pctxt->context;
1945
1946 if (val == NULL)
1947 return(NULL);
1948
1949 if ((ctxt != NULL) && (ctxt->cache != NULL)) {
1950 switch (val->type) {
1951 case XPATH_NODESET: {
1952 xmlNodeSetPtr set;
1953
1954 set = xmlXPathNodeSetMerge(NULL, val->nodesetval);
1955 if (set == NULL) {
1956 xmlXPathPErrMemory(pctxt);
1957 return(NULL);
1958 }
1959 return(xmlXPathCacheWrapNodeSet(pctxt, set));
1960 }
1961 case XPATH_STRING:
1962 return(xmlXPathCacheNewString(pctxt, val->stringval));
1963 case XPATH_BOOLEAN:
1964 return(xmlXPathCacheNewBoolean(pctxt, val->boolval));
1965 case XPATH_NUMBER:
1966 return(xmlXPathCacheNewFloat(pctxt, val->floatval));
1967 default:
1968 break;
1969 }
1970 }
1971 ret = xmlXPathObjectCopy(val);
1972 if (ret == NULL)
1973 xmlXPathPErrMemory(pctxt);
1974 return(ret);
1975}
1976
1977/************************************************************************
1978 * *

Callers 5

xmlXPathCompOpEvalFirstFunction · 0.85
xmlXPathCompOpEvalLastFunction · 0.85
xmlXPathCompOpEvalFunction · 0.85

Calls 7

xmlXPathNodeSetMergeFunction · 0.85
xmlXPathPErrMemoryFunction · 0.85
xmlXPathCacheWrapNodeSetFunction · 0.85
xmlXPathCacheNewStringFunction · 0.85
xmlXPathCacheNewBooleanFunction · 0.85
xmlXPathCacheNewFloatFunction · 0.85
xmlXPathObjectCopyFunction · 0.85

Tested by

no test coverage detected