mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 03:00:46 +00:00
C-CON: fix 'copy' on 64-bit archs.
git-svn-id: https://svn.eduke32.com/eduke32@3810 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
f568f34636
commit
f051e1e229
1 changed files with 13 additions and 3 deletions
|
@ -4396,19 +4396,29 @@ finish_qsprintf:
|
||||||
if ((sidx+numelts) > ssiz) numelts = ssiz-sidx;
|
if ((sidx+numelts) > ssiz) numelts = ssiz-sidx;
|
||||||
if ((didx+numelts) > dsiz) numelts = dsiz-didx;
|
if ((didx+numelts) > dsiz) numelts = dsiz-didx;
|
||||||
|
|
||||||
|
// Switch depending on the source array type.
|
||||||
switch (aGameArrays[si].dwFlags & GAMEARRAY_TYPE_MASK)
|
switch (aGameArrays[si].dwFlags & GAMEARRAY_TYPE_MASK)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
// CON array to CON array.
|
||||||
|
Bmemcpy(aGameArrays[di].plValues+didx, aGameArrays[si].plValues+sidx, numelts*GAR_ELTSZ);
|
||||||
|
break;
|
||||||
case GAMEARRAY_OFINT:
|
case GAMEARRAY_OFINT:
|
||||||
Bmemcpy((int32_t *)aGameArrays[di].plValues + didx, (int32_t *)aGameArrays[si].plValues + sidx, numelts * sizeof(int32_t));
|
// From int32-sized array. Note that the CON array element
|
||||||
|
// type is intptr_t, so it is different-sized on 64-bit
|
||||||
|
// archs, but same-sized on 32-bit ones.
|
||||||
|
for (; numelts>0; numelts--)
|
||||||
|
(aGameArrays[di].plValues)[didx++] = ((int32_t *)aGameArrays[si].plValues)[sidx++];
|
||||||
break;
|
break;
|
||||||
case GAMEARRAY_OFSHORT:
|
case GAMEARRAY_OFSHORT:
|
||||||
|
// From int16_t array. Always different-sized.
|
||||||
for (; numelts>0; numelts--)
|
for (; numelts>0; numelts--)
|
||||||
((int32_t *)aGameArrays[di].plValues)[didx++] = ((int16_t *)aGameArrays[si].plValues)[sidx++];
|
(aGameArrays[di].plValues)[didx++] = ((int16_t *)aGameArrays[si].plValues)[sidx++];
|
||||||
break;
|
break;
|
||||||
case GAMEARRAY_OFCHAR:
|
case GAMEARRAY_OFCHAR:
|
||||||
|
// From char array. Always different-sized.
|
||||||
for (; numelts>0; numelts--)
|
for (; numelts>0; numelts--)
|
||||||
((int32_t *)aGameArrays[di].plValues)[didx++] = ((uint8_t *)aGameArrays[si].plValues)[sidx++];
|
(aGameArrays[di].plValues)[didx++] = ((uint8_t *)aGameArrays[si].plValues)[sidx++];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in a new issue