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

Function xmlXPathCastToNumberInternal

ThirdParty/libxml2/vtklibxml2/xpath.c:1992–2037  ·  view source on GitHub ↗

* xmlXPathCastToNumberInternal: * @ctxt: parser context * @val: an XPath object * * Converts an XPath object to its number value * * Returns the number value */

Source from the content-addressed store, hash-verified

1990 * Returns the number value
1991 */
1992static double
1993xmlXPathCastToNumberInternal(xmlXPathParserContextPtr ctxt,
1994 xmlXPathObjectPtr val) {
1995 double ret = 0.0;
1996
1997 if (val == NULL)
1998 return(xmlXPathNAN);
1999 switch (val->type) {
2000 case XPATH_UNDEFINED:
2001 ret = xmlXPathNAN;
2002 break;
2003 case XPATH_NODESET:
2004 case XPATH_XSLT_TREE: {
2005 xmlChar *str;
2006
2007 str = xmlXPathCastNodeSetToString(val->nodesetval);
2008 if (str == NULL) {
2009 xmlXPathPErrMemory(ctxt);
2010 ret = xmlXPathNAN;
2011 } else {
2012 ret = xmlXPathCastStringToNumber(str);
2013 xmlFree(str);
2014 }
2015 break;
2016 }
2017 case XPATH_STRING:
2018 ret = xmlXPathCastStringToNumber(val->stringval);
2019 break;
2020 case XPATH_NUMBER:
2021 ret = val->floatval;
2022 break;
2023 case XPATH_BOOLEAN:
2024 ret = xmlXPathCastBooleanToNumber(val->boolval);
2025 break;
2026 case XPATH_USERS:
2027#ifdef LIBXML_XPTR_LOCS_ENABLED
2028 case XPATH_POINT:
2029 case XPATH_RANGE:
2030 case XPATH_LOCATIONSET:
2031#endif /* LIBXML_XPTR_LOCS_ENABLED */
2032 /* TODO */
2033 ret = xmlXPathNAN;
2034 break;
2035 }
2036 return(ret);
2037}
2038
2039/**
2040 * valuePop:

Callers 8

xmlXPathPopNumberFunction · 0.85
xmlXPathCastToNumberFunction · 0.85
xmlXPathAddValuesFunction · 0.85
xmlXPathSubValuesFunction · 0.85
xmlXPathMultValuesFunction · 0.85
xmlXPathDivValuesFunction · 0.85
xmlXPathModValuesFunction · 0.85
xmlXPathNumberFunctionFunction · 0.85

Calls 4

xmlXPathPErrMemoryFunction · 0.85

Tested by

no test coverage detected