Avoid using calloc(). This triggered an obscure bug on multiprocessor

Sparc Solaris 2.6 (fully patched!) that I don't want to dig into, but
which I suspect is a bug in the multithreaded malloc library that only
shows up when run on a multiprocessor.  (The program wasn't using
threads, it was just using the multithreaded C library.)
This commit is contained in:
Guido van Rossum 1998-07-16 15:06:13 +00:00
parent 93d1fe1c56
commit 0fd00334c6

View file

@ -283,11 +283,12 @@ dictresize(mp, minused)
break;
}
}
newtable = (dictentry *) calloc(sizeof(dictentry), newsize);
newtable = (dictentry *) malloc(sizeof(dictentry) * newsize);
if (newtable == NULL) {
PyErr_NoMemory();
return -1;
}
memset(newtable, '\0', sizeof(dictentry) * newsize);
mp->ma_size = newsize;
mp->ma_poly = newpoly;
mp->ma_table = newtable;