summaryrefslogtreecommitdiff
path: root/xpath.c
diff options
context:
space:
mode:
Diffstat (limited to 'xpath.c')
-rw-r--r--xpath.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/xpath.c b/xpath.c
index 3d21e72..9866736 100644
--- a/xpath.c
+++ b/xpath.c
@@ -1115,15 +1115,17 @@ extern int
valuePush(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr value)
{
if (ctxt->valueNr >= ctxt->valueMax) {
- ctxt->valueMax *= 2;
- ctxt->valueTab =
- (xmlXPathObjectPtr *) xmlRealloc(ctxt->valueTab,
- ctxt->valueMax *
+ xmlXPathObjectPtr *tmp;
+
+ tmp = (xmlXPathObjectPtr *) xmlRealloc(ctxt->valueTab,
+ 2 * ctxt->valueMax *
sizeof(ctxt->valueTab[0]));
- if (ctxt->valueTab == NULL) {
+ if (tmp == NULL) {
xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
return (0);
}
+ ctxt->valueMax *= 2;
+ ctxt->valueTab = tmp;
}
ctxt->valueTab[ctxt->valueNr] = value;
ctxt->value = value;