widl: Fix sign handling in parameterized types signatures.

Unspecified sign should be mapped to signed integer / char.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Rémi Bernon 2022-01-25 10:13:39 +01:00 committed by Alexandre Julliard
parent 1af44e2670
commit 21fa9fa36a
1 changed files with 3 additions and 3 deletions

View File

@ -211,13 +211,13 @@ static size_t append_type_signature(char **buf, size_t *len, size_t pos, type_t
{
case TYPE_BASIC_INT:
case TYPE_BASIC_INT32:
n += strappend(buf, len, pos + n, type_basic_get_sign(type) < 0 ? "i4" : "u4");
n += strappend(buf, len, pos + n, type_basic_get_sign(type) <= 0 ? "i4" : "u4");
return n;
case TYPE_BASIC_INT64:
n += strappend(buf, len, pos + n, type_basic_get_sign(type) < 0 ? "i8" : "u8");
n += strappend(buf, len, pos + n, type_basic_get_sign(type) <= 0 ? "i8" : "u8");
return n;
case TYPE_BASIC_INT8:
assert(type_basic_get_sign(type) >= 0); /* signature string for signed char isn't specified */
assert(type_basic_get_sign(type) > 0); /* signature string for signed char isn't specified */
n += strappend(buf, len, pos + n, "u1");
return n;
case TYPE_BASIC_FLOAT: