Fixed bug 1925 - SDL_GetPerformanceFrequency returns incorrect value on iOS

PoopiSan

Currently on OSX and iOS simulator the values:
mach_base_info.denom = 1
mach_base_info.numer = 1

but on the real iOS device
mach_base_info.denom = 3
mach_base_info.numer = 125

The calculation is made using following formula
mach_base_info.denom / mach_base_info.numer * 1000000

but all values are int32 and the result is casted to int64.

This solves the problem:

return 1.0 * mach_base_info.denom / mach_base_info.numer * 1000000;
This commit is contained in:
Sam Lantinga 2013-08-10 11:19:30 -07:00
parent df092588e8
commit 28b592cb5d

View file

@ -135,9 +135,9 @@ SDL_GetPerformanceFrequency(void)
#if HAVE_CLOCK_GETTIME
return 1000000000;
#elif defined(__APPLE__)
Uint64 freq = mach_base_info.numer;
Uint64 freq = mach_base_info.denom;
freq *= 1000000000;
freq /= mach_base_info.denom;
freq /= mach_base_info.numer;
return freq;
#endif
} else {