strange test in line 73: if (!(size = sizeField(arg))) size = argByteSize = sizeof(void *); else argByteSize = abs(size);
for me, it means
if (sizeField(arg) != 0) size = argByteSize = sizeof(void *); else size = argByteSize = 0;
is it intentional ?
Nicolas