Merge pull request #11166 from akallabeth/warn-fix-cast

[warnings] fix sign conversion
This commit is contained in:
akallabeth
2025-02-12 14:31:35 +01:00
committed by GitHub
9 changed files with 56 additions and 48 deletions

View File

@@ -389,7 +389,9 @@ static uint8_t get_guid_unit_id_from_device(libusb_device* device, const uint8_t
"For camera %04" PRIx16 ":%04" PRIx16
" found UVCX H264 UnitID %" PRId8,
ddesc.idVendor, ddesc.idProduct, unit_id);
return unit_id;
if (unit_id < 0)
return 0;
return WINPR_CXX_COMPAT_CAST(uint8_t, unit_id);
}
ptr += desc->bLength;
}

View File

@@ -791,10 +791,14 @@ static UINT udevman_listener_created_callback(IUDEVMAN* iudevman)
WINPR_ASSERT(udevman);
if (udevman->devices_vid_pid)
return urbdrc_udevman_register_devices(udevman, udevman->devices_vid_pid, FALSE);
return urbdrc_udevman_register_devices(udevman, udevman->devices_vid_pid, FALSE)
? CHANNEL_RC_OK
: CHANNEL_RC_INITIALIZATION_ERROR;
if (udevman->devices_addr)
return urbdrc_udevman_register_devices(udevman, udevman->devices_addr, TRUE);
return urbdrc_udevman_register_devices(udevman, udevman->devices_addr, TRUE)
? CHANNEL_RC_OK
: CHANNEL_RC_INITIALIZATION_ERROR;
return CHANNEL_RC_OK;
}

View File

@@ -574,7 +574,7 @@ BOOL xf_detect_monitors(xfContext* xfc, UINT32* pMaxWidth, UINT32* pMaxHeight)
if (freerdp_settings_get_bool(settings, FreeRDP_Workarea))
{
INT64 bottom = xfc->workArea.height + xfc->workArea.y - 1;
INT64 bottom = 1LL * xfc->workArea.height + xfc->workArea.y - 1LL;
vscreen->area.top = WINPR_ASSERTING_INT_CAST(UINT16, xfc->workArea.y);
vscreen->area.bottom = WINPR_ASSERTING_INT_CAST(UINT16, bottom);
}

View File

@@ -1812,12 +1812,6 @@ UINT32 freerdp_settings_get_uint32(const rdpSettings* settings, FreeRDP_Settings
case FreeRDP_MonitorFlags:
return settings->MonitorFlags;
case FreeRDP_MonitorLocalShiftX:
return settings->MonitorLocalShiftX;
case FreeRDP_MonitorLocalShiftY:
return settings->MonitorLocalShiftY;
case FreeRDP_MultifragMaxRequestSize:
return settings->MultifragMaxRequestSize;
@@ -2001,6 +1995,12 @@ UINT32 freerdp_settings_get_uint32(const rdpSettings* settings, FreeRDP_Settings
case FreeRDP_VCFlags:
return settings->VCFlags;
case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftX:
return (UINT32)settings->MonitorLocalShiftX;
case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftY:
return (UINT32)settings->MonitorLocalShiftY;
default:
WLog_ERR(TAG, "Invalid key index %" PRIuz " [%s|%s]", id,
freerdp_settings_get_name_for_key(id),
@@ -2277,14 +2277,6 @@ BOOL freerdp_settings_set_uint32(rdpSettings* settings, FreeRDP_Settings_Keys_UI
settings->MonitorFlags = cnv.c;
break;
case FreeRDP_MonitorLocalShiftX:
settings->MonitorLocalShiftX = cnv.c;
break;
case FreeRDP_MonitorLocalShiftY:
settings->MonitorLocalShiftY = cnv.c;
break;
case FreeRDP_MultifragMaxRequestSize:
settings->MultifragMaxRequestSize = cnv.c;
break;

View File

@@ -362,8 +362,6 @@ static const struct settings_str_entry settings_map[] = {
{ FreeRDP_MonitorCount, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorCount" },
{ FreeRDP_MonitorDefArraySize, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorDefArraySize" },
{ FreeRDP_MonitorFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorFlags" },
{ FreeRDP_MonitorLocalShiftX, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorLocalShiftX" },
{ FreeRDP_MonitorLocalShiftY, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MonitorLocalShiftY" },
{ FreeRDP_MultifragMaxRequestSize, FREERDP_SETTINGS_TYPE_UINT32,
"FreeRDP_MultifragMaxRequestSize" },
{ FreeRDP_MultitransportFlags, FREERDP_SETTINGS_TYPE_UINT32, "FreeRDP_MultitransportFlags" },

View File

@@ -866,7 +866,7 @@ static INLINE BOOL update_read_delta(wStream* s, INT32* value)
Stream_Read_UINT8(s, byte);
if (byte & 0x40)
uvalue = (byte | ~0x3F) & UINT32_MAX;
uvalue = WINPR_CXX_COMPAT_CAST(UINT32, (byte | ~0x3F));
else
uvalue = (byte & 0x3F);

View File

@@ -63,6 +63,8 @@ typedef struct
UINT32 offset;
} wtsChannelMessage;
static const DWORD g_err_oom = WINPR_CXX_COMPAT_CAST(DWORD, E_OUTOFMEMORY);
static DWORD g_SessionId = 1;
static wHashTable* g_ServerHandles = NULL;
@@ -1153,7 +1155,7 @@ BOOL WINAPI FreeRDP_WTSQuerySessionInformationA(HANDLE hServer, DWORD SessionId,
if (!pBuffer)
{
SetLastError(E_OUTOFMEMORY);
SetLastError(g_err_oom);
return FALSE;
}
@@ -1569,7 +1571,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelWrite(HANDLE hChannelHandle, PCHAR Buffer,
if (!buffer)
{
SetLastError(E_OUTOFMEMORY);
SetLastError(g_err_oom);
goto fail;
}
@@ -1598,7 +1600,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelWrite(HANDLE hChannelHandle, PCHAR Buffer,
if (!s)
{
WLog_ERR(TAG, "Stream_New failed!");
SetLastError(E_OUTOFMEMORY);
SetLastError(g_err_oom);
goto fail;
}
@@ -1683,7 +1685,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL
if (!*ppBuffer)
{
SetLastError(E_OUTOFMEMORY);
SetLastError(g_err_oom);
}
else
{
@@ -1701,7 +1703,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL
if (!*ppBuffer)
{
SetLastError(E_OUTOFMEMORY);
SetLastError(g_err_oom);
}
else
{
@@ -1743,7 +1745,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL
if (!*ppBuffer)
{
SetLastError(E_OUTOFMEMORY);
SetLastError(g_err_oom);
status = FALSE;
}
else
@@ -1761,7 +1763,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL
*ppBuffer = malloc(sizeof(value));
if (!*ppBuffer)
{
SetLastError(E_OUTOFMEMORY);
SetLastError(g_err_oom);
status = FALSE;
}
else

View File

@@ -281,8 +281,6 @@ static const size_t uint32_list_indices[] = {
FreeRDP_MonitorCount,
FreeRDP_MonitorDefArraySize,
FreeRDP_MonitorFlags,
FreeRDP_MonitorLocalShiftX,
FreeRDP_MonitorLocalShiftY,
FreeRDP_MultifragMaxRequestSize,
FreeRDP_MultitransportFlags,
FreeRDP_NSCodecColorLossLevel,

View File

@@ -79,11 +79,14 @@ def write_str(f, entry_dict):
f.write('};\n\n')
f.write('\n')
def write_getter_case(f, val, cast):
f.write('\t\tcase FreeRDP_' + val + ':\n')
def write_getter_case(f, val, cast, typestr):
f.write('\t\tcase ')
if typestr:
f.write('(' + typestr + ')')
f.write('FreeRDP_' + val + ':\n')
f.write('\t\t\treturn ' + cast + 'settings->' + val + ';\n\n')
def write_getter_body(f, values, ret, keys, isPointer):
def write_getter_body(f, values, ret, keys, isPointer, compat_values, typestr, entry_type):
f.write('{\n')
f.write('\tWINPR_ASSERT(settings);\n\n')
f.write('\tswitch (id)\n')
@@ -96,7 +99,12 @@ def write_getter_body(f, values, ret, keys, isPointer):
key = keys[i]
if key != 'void*':
cast = '(void*)'
write_getter_case(f, val, cast)
write_getter_case(f, val, cast, None)
if compat_values:
for i in range(len(compat_values)):
val = compat_values[i]
cast = '(' + entry_type + ')'
write_getter_case(f, val, cast, typestr)
f.write('\t\tdefault:\n')
f.write('\t\t\tWLog_ERR(TAG, "Invalid key index %" PRIuz " [%s|%s]", id, freerdp_settings_get_name_for_key(id), freerdp_settings_get_type_name_for_key(id));\n')
f.write('\t\t\tWINPR_ASSERT(FALSE);\n')
@@ -104,11 +112,12 @@ def write_getter_body(f, values, ret, keys, isPointer):
f.write('\t}\n')
f.write('}\n\n')
def write_getter(f, entry_dict, entry_type, entry_name, postfix):
def write_getter(f, entry_dict, entry_type, entry_name, postfix, compat_dict):
isString = 'string' in entry_name
isPointer = 'pointer' in entry_name
copy = dict(entry_dict)
values = get_values(entry_dict, entry_type)
compat_values = get_values(compat_dict, entry_type)
keys = get_keys(copy, entry_type, values)
typestr = 'FreeRDP_Settings_Keys_' + entry_name.capitalize()
@@ -132,11 +141,11 @@ def write_getter(f, entry_dict, entry_type, entry_name, postfix):
else:
ret = '0';
write_getter_body(f, values, ret, keys, isPointer)
write_getter_body(f, values, ret, keys, isPointer, compat_values, typestr, entry_type)
if isString:
f.write('char* freerdp_settings_get_' + entry_name.lower() + '_writable(rdpSettings* settings, ' + typestr + ' id)\n')
write_getter_body(f, values, ret, keys, isPointer)
write_getter_body(f, values, ret, keys, isPointer, compat_values, typestr, entry_type)
def write_setter_case(f, val, postfix, isPointer, cast):
f.write('\t\tcase FreeRDP_' + val + ':\n')
@@ -325,26 +334,29 @@ try:
setter_list = dict(type_list)
setter_list2 = dict(type_list)
# Compatibility with older 3.x releases where the value was wrongly an unsigned type
getter_list['UINT32'].append('MonitorLocalShiftX')
getter_list['UINT32'].append('MonitorLocalShiftY')
write_getter(f, getter_list, 'BOOL', 'bool', '')
compat_getter_list = dict()
compat_getter_list['UINT32'] = list()
compat_getter_list['UINT32'].append('MonitorLocalShiftX')
compat_getter_list['UINT32'].append('MonitorLocalShiftY')
write_getter(f, getter_list, 'BOOL', 'bool', '', compat_getter_list)
write_setter(f, setter_list, 'BOOL', 'bool', '')
write_getter(f, getter_list, 'UINT16', 'uint16', '')
write_getter(f, getter_list, 'UINT16', 'uint16', '', compat_getter_list)
write_setter(f, setter_list, 'UINT16', 'uint16', '')
write_getter(f, getter_list, 'INT16', 'int16', '')
write_getter(f, getter_list, 'INT16', 'int16', '', compat_getter_list)
write_setter(f, setter_list, 'INT16', 'int16', '')
write_getter(f, getter_list, 'UINT32', 'uint32', '')
write_getter(f, getter_list, 'UINT32', 'uint32', '', compat_getter_list)
write_setter(f, setter_list, 'UINT32', 'uint32', '')
write_getter(f, getter_list, 'INT32', 'int32', '')
write_getter(f, getter_list, 'INT32', 'int32', '', compat_getter_list)
write_setter(f, setter_list, 'INT32', 'int32', '')
write_getter(f, getter_list, 'UINT64', 'uint64', '')
write_getter(f, getter_list, 'UINT64', 'uint64', '', compat_getter_list)
write_setter(f, setter_list, 'UINT64', 'uint64', '')
write_getter(f, getter_list, 'INT64', 'int64', '')
write_getter(f, getter_list, 'INT64', 'int64', '', compat_getter_list)
write_setter(f, setter_list, 'INT64', 'int64', '')
write_getter(f, getter_list, 'char*', 'string', '_')
write_getter(f, getter_list, 'char*', 'string', '_', compat_getter_list)
write_setter(f, setter_list, 'char*', 'string', '_')
write_setter(f, setter_list2, 'char*', 'string', '_copy_')
write_getter(f, getter_list, '*', 'pointer', '')
write_getter(f, getter_list, '*', 'pointer', '', compat_getter_list)
write_setter(f, setter_list, '*', 'pointer', '')
f.write('\n')