xdiff: fix a hard crash on Windows
The xdiff case of test-diff-antipatience.t started crashing in the C extension
with
882657a9f768 (with
6a71a5ba666b backported so it compiles). There are a
few more instances of 'long', but this resolves the crashing.
--- a/mercurial/thirdparty/xdiff/xdiffi.c Thu Mar 08 22:23:02 2018 +0900
+++ b/mercurial/thirdparty/xdiff/xdiffi.c Mon Mar 12 21:50:18 2018 -0400
@@ -342,7 +342,7 @@
* One is to store the forward path and one to store the backward path.
*/
ndiags = xe->xdf1.nreff + xe->xdf2.nreff + 3;
- if (!(kvd = (int64_t *) xdl_malloc((2 * ndiags + 2) * sizeof(long)))) {
+ if (!(kvd = (int64_t *) xdl_malloc((2 * ndiags + 2) * sizeof(int64_t)))) {
xdl_free_env(xe);
return -1;
--- a/mercurial/thirdparty/xdiff/xprepare.c Thu Mar 08 22:23:02 2018 +0900
+++ b/mercurial/thirdparty/xdiff/xprepare.c Mon Mar 12 21:50:18 2018 -0400
@@ -296,9 +296,9 @@
goto abort;
memset(rchg, 0, (nrec + 2) * sizeof(char));
- if (!(rindex = (int64_t *) xdl_malloc((nrec + 1) * sizeof(long))))
+ if (!(rindex = (int64_t *) xdl_malloc((nrec + 1) * sizeof(int64_t))))
goto abort;
- if (!(ha = (uint64_t *) xdl_malloc((nrec + 1) * sizeof(unsigned long))))
+ if (!(ha = (uint64_t *) xdl_malloc((nrec + 1) * sizeof(uint64_t))))
goto abort;
xdf->nrec = nrec;