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

Function xmlXPathEqualValuesCommon

ThirdParty/libxml2/vtklibxml2/xpath.c:5937–6112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5935}
5936
5937static int
5938xmlXPathEqualValuesCommon(xmlXPathParserContextPtr ctxt,
5939 xmlXPathObjectPtr arg1, xmlXPathObjectPtr arg2) {
5940 int ret = 0;
5941 /*
5942 *At this point we are assured neither arg1 nor arg2
5943 *is a nodeset, so we can just pick the appropriate routine.
5944 */
5945 switch (arg1->type) {
5946 case XPATH_UNDEFINED:
5947 break;
5948 case XPATH_BOOLEAN:
5949 switch (arg2->type) {
5950 case XPATH_UNDEFINED:
5951 break;
5952 case XPATH_BOOLEAN:
5953 ret = (arg1->boolval == arg2->boolval);
5954 break;
5955 case XPATH_NUMBER:
5956 ret = (arg1->boolval ==
5957 xmlXPathCastNumberToBoolean(arg2->floatval));
5958 break;
5959 case XPATH_STRING:
5960 if ((arg2->stringval == NULL) ||
5961 (arg2->stringval[0] == 0)) ret = 0;
5962 else
5963 ret = 1;
5964 ret = (arg1->boolval == ret);
5965 break;
5966 case XPATH_USERS:
5967#ifdef LIBXML_XPTR_LOCS_ENABLED
5968 case XPATH_POINT:
5969 case XPATH_RANGE:
5970 case XPATH_LOCATIONSET:
5971#endif /* LIBXML_XPTR_LOCS_ENABLED */
5972 /* TODO */
5973 break;
5974 case XPATH_NODESET:
5975 case XPATH_XSLT_TREE:
5976 break;
5977 }
5978 break;
5979 case XPATH_NUMBER:
5980 switch (arg2->type) {
5981 case XPATH_UNDEFINED:
5982 break;
5983 case XPATH_BOOLEAN:
5984 ret = (arg2->boolval==
5985 xmlXPathCastNumberToBoolean(arg1->floatval));
5986 break;
5987 case XPATH_STRING:
5988 valuePush(ctxt, arg2);
5989 xmlXPathNumberFunction(ctxt, 1);
5990 arg2 = valuePop(ctxt);
5991 if (ctxt->error)
5992 break;
5993 /* Falls through. */
5994 case XPATH_NUMBER:

Callers 2

xmlXPathEqualValuesFunction · 0.85
xmlXPathNotEqualValuesFunction · 0.85

Calls 8

valuePushFunction · 0.85
xmlXPathNumberFunctionFunction · 0.85
valuePopFunction · 0.85
xmlXPathIsNaNFunction · 0.85
xmlXPathIsInfFunction · 0.85
xmlStrEqualFunction · 0.85
xmlXPathReleaseObjectFunction · 0.85

Tested by

no test coverage detected