#endif /* !HAVE_VASPRINTF */
#if !HAVE_VSNPRINTF
-#include <errno.h> /* For ERANGE and errno. */
#include <limits.h> /* For *_MAX. */
#if HAVE_INTTYPES_H
#include <inttypes.h> /* For intmax_t (if not defined in <stdint.h>). */
static UINTMAX_T myround(LDOUBLE);
static LDOUBLE mypow10(int);
-extern int errno;
-
int
rpl_vsnprintf(char *str, size_t size, const char *format, va_list args)
{
goto out;
break;
case 'c':
- cvalue = va_arg(args, int);
+ cvalue = (unsigned char)va_arg(args, int);
OUTCHAR(str, len, size, cvalue);
break;
case 's':
str[size - 1] = '\0';
if (overflow || len >= INT_MAX) {
- errno = overflow ? EOVERFLOW : ERANGE;
return -1;
}
return (int)len;
* Factor of ten with the number of digits needed for the fractional
* part. For example, if the precision is 3, the mask will be 1000.
*/
- mask = mypow10(precision);
+ mask = (UINTMAX_T)mypow10(precision);
/*
* We "cheat" by converting the fractional part to integer by
* multiplying by a factor of ten.
if (value >= UINTMAX_MAX)
return UINTMAX_MAX;
- result = value;
+ result = (UINTMAX_T)value;
/*
* At least on NetBSD/sparc64 3.0.2 and 4.99.30, casting long double to
* an integer type converts e.g. 1.9 to 2 instead of 1 (which violates
unsigned num, void **sampler)
{
struct i915_context *i915 = i915_context(pipe);
+ unsigned i;
assert(num <= PIPE_MAX_SAMPLERS);
!memcmp(i915->sampler, sampler, num * sizeof(void *)))
return;
- memcpy(i915->sampler, sampler, num * sizeof(void *));
- memset(&i915->sampler[num], 0, (PIPE_MAX_SAMPLERS - num) * sizeof(void *));
+ for (i = 0; i < num; ++i)
+ i915->sampler[i] = sampler[i];
+ for (i = num; i < PIPE_MAX_SAMPLERS; ++i)
+ i915->sampler[i] = NULL;
i915->num_samplers = num;
unsigned num, void **sampler)
{
struct softpipe_context *softpipe = softpipe_context(pipe);
+ unsigned i;
assert(num <= PIPE_MAX_SAMPLERS);
draw_flush(softpipe->draw);
- memcpy(softpipe->sampler, sampler, num * sizeof(void *));
- memset(&softpipe->sampler[num], 0, (PIPE_MAX_SAMPLERS - num) *
- sizeof(void *));
+ for (i = 0; i < num; ++i)
+ softpipe->sampler[i] = sampler[i];
+ for (i = num; i < PIPE_MAX_SAMPLERS; ++i)
+ softpipe->sampler[i] = NULL;
softpipe->num_samplers = num;