Epic failures in the game development field.

This blog covers funny/weird issues and bugs from games that happened during development.

Send your own contributions to igetyourfail at repi.se (can be anonymous if specified)

Friday, December 19, 2008

Oops, shipped a stack memory overwrite we did

Vec unpackedTransform[4];

#if defined(SPU)
vecLoadHalf8(unpackedTransform[0], unpackedTransform[1], &sourceTransform->data[0]);
unpackedTransform[2] = vecLoadHalf4(&sourceTransform->data[8]);
// get alignment errors with both vecLoadHalf8 and convertHalfToFloat array, so use naive but working method instead
// convertHalfToFloat(reinterpret_cast<float*>(unpackedTransform), &sourceTransform->data[0], 12);
for (uint i=0; i<24; i++)
reinterpret_cast<float*>(unpackedTransform)[i] = convertHalfToFloat(sourceTransform->data[i]);

No comments: