We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 2274

Summary: SDL_ceil is incorrectly implemented when HAVE_LIBC is not defined
Product: SDL Reporter: Ghassan Al-Mashareqa <kronikarz>
Component: *don't know*Assignee: Ryan C. Gordon <icculus>
Status: RESOLVED FIXED QA Contact: Sam Lantinga <slouken>
Severity: major    
Priority: P2    
Version: HG 2.0   
Hardware: All   
OS: All   

Description Ghassan Al-Mashareqa 2013-11-26 10:00:51 UTC
The SDL_ceil function is implemented incorrectly when HAVE_CEIL is not defined (HAVE_LIBC not defined).

The following code:

	double val = SDL_ceil(2.3);
	printf("%g", val);

prints "2.0", as STD_ceil is defined as: 

	double
	SDL_ceil(double x)
	{
	#ifdef HAVE_CEIL
	    return ceil(x);
	#else
	    return (double)(int)((x)+0.5);
	#endif /* HAVE_CEIL */
	}

This functions is used in the SDL_BuildAudioResampleCVT function of the audio subsystem (SDL_audiocvt.c), and causes a bug in that function.
Comment 1 Sam Lantinga 2013-11-27 08:30:44 UTC
Fixed, thanks!