[PATCH 6/8] msxml3: use libxml2 macros for XSLPattern method return values
Adam Martinson
amartinson at codeweavers.com
Thu Oct 28 20:19:38 CDT 2010
libxml2's valuePop() and valuePush() are scheduled to be renamed;
we can use provided macros to avoid using them directly.
---
dlls/msxml3/queryresult.c | 32 +++++++++-----------------------
1 files changed, 9 insertions(+), 23 deletions(-)
diff --git a/dlls/msxml3/queryresult.c b/dlls/msxml3/queryresult.c
index 36652a0..96f9e6f 100644
--- a/dlls/msxml3/queryresult.c
+++ b/dlls/msxml3/queryresult.c
@@ -377,24 +377,10 @@ static dispex_static_data_t queryresult_dispex = {
queryresult_iface_tids
};
-void XSLPattern_invalid(xmlXPathParserContextPtr pctx, int nargs)
-{
- xmlXPathObjectPtr obj;
- for (; nargs > 0; --nargs)
- {
- obj = valuePop(pctx);
- xmlXPathFreeObject(obj);
- }
-
- obj = xmlMalloc(sizeof(xmlXPathObject));
- obj->type = XPATH_UNDEFINED;
- valuePush(pctx,obj);
-}
-
#define XSLPATTERN_CHECK_ARGS(n) \
if (nargs != n) { \
FIXME("XSLPattern syntax error: Expected %i arguments, got %i\n", n, nargs); \
- XSLPattern_invalid(pctx, nargs); \
+ xmlXPathSetArityError(pctx); \
return; \
}
@@ -404,7 +390,7 @@ void XSLPattern_index(xmlXPathParserContextPtr pctx, int nargs)
XSLPATTERN_CHECK_ARGS(0);
xmlXPathPositionFunction(pctx, 0);
- valuePush(pctx, xmlXPathNewFloat(xmlXPathPopNumber(pctx) - 1.0));
+ xmlXPathReturnNumber(pctx, xmlXPathPopNumber(pctx) - 1.0);
}
void XSLPattern_end(xmlXPathParserContextPtr pctx, int nargs)
@@ -416,7 +402,7 @@ void XSLPattern_end(xmlXPathParserContextPtr pctx, int nargs)
pos = xmlXPathPopNumber(pctx);
xmlXPathLastFunction(pctx, 0);
last = xmlXPathPopNumber(pctx);
- valuePush(pctx, xmlXPathNewBoolean(pos == last));
+ xmlXPathReturnBoolean(pctx, pos == last);
}
void XSLPattern_OP_IEq(xmlXPathParserContextPtr pctx, int nargs)
@@ -426,7 +412,7 @@ void XSLPattern_OP_IEq(xmlXPathParserContextPtr pctx, int nargs)
arg2 = xmlXPathPopString(pctx);
arg1 = xmlXPathPopString(pctx);
- valuePush(pctx, xmlXPathNewBoolean(xmlStrcasecmp(arg1, arg2) == 0));
+ xmlXPathReturnBoolean(pctx, xmlStrcasecmp(arg1, arg2) == 0);
xmlFree(arg1);
xmlFree(arg2);
}
@@ -438,7 +424,7 @@ void XSLPattern_OP_INEq(xmlXPathParserContextPtr pctx, int nargs)
arg2 = xmlXPathPopString(pctx);
arg1 = xmlXPathPopString(pctx);
- valuePush(pctx, xmlXPathNewBoolean(xmlStrcasecmp(arg1, arg2) != 0));
+ xmlXPathReturnBoolean(pctx, xmlStrcasecmp(arg1, arg2) != 0);
xmlFree(arg1);
xmlFree(arg2);
}
@@ -450,7 +436,7 @@ void XSLPattern_OP_ILt(xmlXPathParserContextPtr pctx, int nargs)
arg2 = xmlXPathPopString(pctx);
arg1 = xmlXPathPopString(pctx);
- valuePush(pctx, xmlXPathNewBoolean(xmlStrcasecmp(arg1, arg2) < 0));
+ xmlXPathReturnBoolean(pctx, xmlStrcasecmp(arg1, arg2) < 0);
xmlFree(arg1);
xmlFree(arg2);
}
@@ -462,7 +448,7 @@ void XSLPattern_OP_ILEq(xmlXPathParserContextPtr pctx, int nargs)
arg2 = xmlXPathPopString(pctx);
arg1 = xmlXPathPopString(pctx);
- valuePush(pctx, xmlXPathNewBoolean(xmlStrcasecmp(arg1, arg2) <= 0));
+ xmlXPathReturnBoolean(pctx, xmlStrcasecmp(arg1, arg2) <= 0);
xmlFree(arg1);
xmlFree(arg2);
}
@@ -474,7 +460,7 @@ void XSLPattern_OP_IGt(xmlXPathParserContextPtr pctx, int nargs)
arg2 = xmlXPathPopString(pctx);
arg1 = xmlXPathPopString(pctx);
- valuePush(pctx, xmlXPathNewBoolean(xmlStrcasecmp(arg1, arg2) > 0));
+ xmlXPathReturnBoolean(pctx, xmlStrcasecmp(arg1, arg2) > 0);
xmlFree(arg1);
xmlFree(arg2);
}
@@ -486,7 +472,7 @@ void XSLPattern_OP_IGEq(xmlXPathParserContextPtr pctx, int nargs)
arg2 = xmlXPathPopString(pctx);
arg1 = xmlXPathPopString(pctx);
- valuePush(pctx, xmlXPathNewBoolean(xmlStrcasecmp(arg1, arg2) >= 0));
+ xmlXPathReturnBoolean(pctx, xmlStrcasecmp(arg1, arg2) >= 0);
xmlFree(arg1);
xmlFree(arg2);
}
--
1.7.2.3
--------------050300080204070903020709--
More information about the wine-patches
mailing list