Piotr Caban piotr@codeweavers.com writes:
+printf_arg arg_clbk_valist(void *ctx, int arg_pos, size_t size, __ms_va_list *valist) +{
- printf_arg ret;
- if(size == sizeof(LONGLONG))
ret.get_longlong = va_arg(*valist, LONGLONG);
- else if(size == sizeof(int))
ret.get_int = va_arg(*valist, int);
- else {
ERR("Incorrect size\n");
ret.get_int = 0;
- }
You can't do that, you need to use the correct type in va_arg. Different types can be passed differently even if they have the same size.