diff --git a/client/Windows/wfreerdp.c b/client/Windows/wfreerdp.c index cf27244dc..d293edbfd 100644 --- a/client/Windows/wfreerdp.c +++ b/client/Windows/wfreerdp.c @@ -318,9 +318,9 @@ boolean wf_post_connect(freerdp* instance) if (settings->window_title != NULL) _snwprintf(win_title, sizeof(win_title), L"%S", settings->window_title); else if (settings->port == 3389) - _snwprintf(win_title, sizeof(win_title) / sizeof(win_title[0]), L"FreeRDP: %S", settings->hostname); + _snwprintf(win_title, ARRAY_SIZE(win_title), L"FreeRDP: %S", settings->hostname); else - _snwprintf(win_title, sizeof(win_title) / sizeof(win_title[0]), L"FreeRDP: %S:%d", settings->hostname, settings->port); + _snwprintf(win_title, ARRAY_SIZE(win_title), L"FreeRDP: %S:%d", settings->hostname, settings->port); if (wfi->hwnd == 0) { diff --git a/client/X11/xf_cliprdr.c b/client/X11/xf_cliprdr.c index fb36bea3a..700a7d447 100644 --- a/client/X11/xf_cliprdr.c +++ b/client/X11/xf_cliprdr.c @@ -786,7 +786,7 @@ static void xf_cliprdr_append_target(clipboardContext* cb, Atom target) { int i; - if (cb->num_targets >= sizeof(cb->targets) / sizeof(Atom)) + if (cb->num_targets >= ARRAY_SIZE(cb->targets)) return; for (i = 0; i < cb->num_targets; i++) diff --git a/client/X11/xf_window.c b/client/X11/xf_window.c index a159c6b8a..429729a83 100644 --- a/client/X11/xf_window.c +++ b/client/X11/xf_window.c @@ -304,7 +304,7 @@ xfWindow* xf_CreateDesktopWindow(xfInfo* xfi, char* name, int width, int height, input_mask |= EnterWindowMask | LeaveWindowMask; XChangeProperty(xfi->display, window->handle, xfi->_NET_WM_ICON, XA_CARDINAL, 32, - PropModeReplace, (uint8*) xf_icon_prop, sizeof(xf_icon_prop) / sizeof(long)); + PropModeReplace, (uint8*) xf_icon_prop, ARRAY_SIZE(xf_icon_prop)); XSelectInput(xfi->display, window->handle, input_mask); XMapWindow(xfi->display, window->handle); diff --git a/cunit/test_rail.c b/cunit/test_rail.c index b27170617..1c363b3cc 100644 --- a/cunit/test_rail.c +++ b/cunit/test_rail.c @@ -380,13 +380,13 @@ static uint8 server_app_get_resp_app_id[] = #define EMULATE_SERVER_SEND_CHANNEL_DATA(inst, byte_array) \ - emulate_server_send_channel_data(inst, byte_array, RAIL_ARRAY_SIZE(byte_array)) + emulate_server_send_channel_data(inst, byte_array, ARRAY_SIZE(byte_array)) #define STREAM_EQUAL_TO_DUMP(stream, dump) \ - (stream_equal_dump((stream)->data, (stream)->size, dump, RAIL_ARRAY_SIZE(dump))) + (stream_equal_dump((stream)->data, (stream)->size, dump, ARRAY_SIZE(dump))) #define UNICODE_STRING_EQUAL_TO_DUMP(ustring, dump) \ - (stream_equal_dump((ustring)->string, (ustring)->length, dump, RAIL_ARRAY_SIZE(dump))) + (stream_equal_dump((ustring)->string, (ustring)->length, dump, ARRAY_SIZE(dump))) typedef struct { @@ -521,7 +521,7 @@ static void emulate_server_send_channel_data( static void save_dump(void* data, size_t size) { thread_param * p = global_thread_params; - if (p->in_streams_number < RAIL_ARRAY_SIZE(p->in_streams)) + if (p->in_streams_number < ARRAY_SIZE(p->in_streams)) { STREAM* s = &p->in_streams[p->in_streams_number]; s->data = malloc(size); @@ -631,7 +631,7 @@ static void process_events_and_channel_data_from_plugin(thread_param* param) counter); // add to global event list - if (param->in_events_number < RAIL_ARRAY_SIZE(param->in_events)) + if (param->in_events_number < ARRAY_SIZE(param->in_events)) { save_event(event, ¶m->in_events[param->in_events_number]); param->in_events_number++; diff --git a/cunit/test_rfx.c b/cunit/test_rfx.c index bfd237000..9fdc6cbf1 100644 --- a/cunit/test_rfx.c +++ b/cunit/test_rfx.c @@ -245,7 +245,7 @@ void test_rlgr(void) { int n; - n = rfx_rlgr_decode(RLGR3, y_data, sizeof(y_data), buffer, sizeof(buffer) / sizeof(unsigned int)); + n = rfx_rlgr_decode(RLGR3, y_data, sizeof(y_data), buffer, ARRAY_SIZE(buffer)); //printf("RLGR decode %d bytes to %d values.", sizeof(y_data), n); //dump_buffer(buffer, n); diff --git a/cunit/test_utils.c b/cunit/test_utils.c index 31fbdf2b1..4cf61b247 100644 --- a/cunit/test_utils.c +++ b/cunit/test_utils.c @@ -36,6 +36,7 @@ #include #include #include +#include #include "test_utils.h" @@ -142,7 +143,7 @@ void test_args(void) "freerdp", "-a", "16", "-u", "testuser", "-d", "testdomain", "-g", "1280x960", "address2:3390" }; char** argv = argv_c; - int argc = sizeof(argv_c) / sizeof(char*); + int argc = ARRAY_SIZE(argv_c); int i; int c; rdpSettings* settings; diff --git a/include/freerdp/utils/memory.h b/include/freerdp/utils/memory.h index 892a7ad94..75f81aa38 100644 --- a/include/freerdp/utils/memory.h +++ b/include/freerdp/utils/memory.h @@ -31,4 +31,6 @@ FREERDP_API char* xstrdup(const char* str); #define xnew(_type) (_type*)xzalloc(sizeof(_type)) +#define ARRAY_SIZE(_x) (sizeof(_x)/sizeof(*(_x))) + #endif /* __MEMORY_UTILS_H */ diff --git a/include/freerdp/utils/rail.h b/include/freerdp/utils/rail.h index 1b95810f0..c47a16917 100644 --- a/include/freerdp/utils/rail.h +++ b/include/freerdp/utils/rail.h @@ -25,8 +25,6 @@ #include #include -#define RAIL_ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) - FREERDP_API void rail_unicode_string_alloc(UNICODE_STRING* unicode_string, uint16 cbString); FREERDP_API void rail_unicode_string_free(UNICODE_STRING* unicode_string); FREERDP_API void rail_read_unicode_string(STREAM* s, UNICODE_STRING* unicode_string); diff --git a/libfreerdp-auth/sspi.c b/libfreerdp-auth/sspi.c index 80c8f833d..0e3019d59 100644 --- a/libfreerdp-auth/sspi.c +++ b/libfreerdp-auth/sspi.c @@ -273,7 +273,7 @@ SECURITY_FUNCTION_TABLE* sspi_GetSecurityFunctionTableByName(const char* Name) int index; uint32 cPackages; - cPackages = sizeof(SEC_PKG_INFO_LIST) / sizeof(SEC_PKG_INFO*); + cPackages = ARRAY_SIZE(SEC_PKG_INFO_LIST); for (index = 0; index < (int) cPackages; index++) { @@ -305,7 +305,7 @@ SECURITY_STATUS EnumerateSecurityPackages(uint32* pcPackages, SEC_PKG_INFO** ppP uint32 cPackages; SEC_PKG_INFO* pPackageInfo; - cPackages = sizeof(SEC_PKG_INFO_LIST) / sizeof(SEC_PKG_INFO*); + cPackages = ARRAY_SIZE(SEC_PKG_INFO_LIST); size = sizeof(SEC_PKG_INFO) * cPackages; pPackageInfo = (SEC_PKG_INFO*) sspi_ContextBufferAlloc(EnumerateSecurityPackagesIndex, size); @@ -332,7 +332,7 @@ void FreeContextBuffer_EnumerateSecurityPackages(void* contextBuffer) uint32 cPackages; SEC_PKG_INFO* pPackageInfo = (SEC_PKG_INFO*) contextBuffer; - cPackages = sizeof(SEC_PKG_INFO_LIST) / sizeof(SEC_PKG_INFO*); + cPackages = ARRAY_SIZE(SEC_PKG_INFO_LIST); for (index = 0; index < (int) cPackages; index++) { @@ -361,7 +361,7 @@ SECURITY_STATUS QuerySecurityPackageInfo(char* pszPackageName, SEC_PKG_INFO** pp uint32 cPackages; SEC_PKG_INFO* pPackageInfo; - cPackages = sizeof(SEC_PKG_INFO_LIST) / sizeof(SEC_PKG_INFO*); + cPackages = ARRAY_SIZE(SEC_PKG_INFO_LIST); for (index = 0; index < (int) cPackages; index++) { diff --git a/libfreerdp-core/orders.c b/libfreerdp-core/orders.c index 493fba80a..1ee0b89a0 100644 --- a/libfreerdp-core/orders.c +++ b/libfreerdp-core/orders.c @@ -68,7 +68,7 @@ static const char* const SECONDARY_DRAWING_ORDER_STRINGS[] = "Cache Bitmap V3" }; -#define SECONDARY_DRAWING_ORDER_COUNT (sizeof(SECONDARY_DRAWING_ORDER_STRINGS) / sizeof(SECONDARY_DRAWING_ORDER_STRINGS[0])) +#define SECONDARY_DRAWING_ORDER_COUNT (ARRAY_SIZE(SECONDARY_DRAWING_ORDER_STRINGS)) static const char* const ALTSEC_DRAWING_ORDER_STRINGS[] = { @@ -88,7 +88,7 @@ static const char* const ALTSEC_DRAWING_ORDER_STRINGS[] = "Frame Marker" }; -#define ALTSEC_DRAWING_ORDER_COUNT (sizeof(ALTSEC_DRAWING_ORDER_STRINGS) / sizeof(ALTSEC_DRAWING_ORDER_STRINGS[0])) +#define ALTSEC_DRAWING_ORDER_COUNT (ARRAY_SIZE(ALTSEC_DRAWING_ORDER_STRINGS)) #endif /* WITH_DEBUG_ORDERS */ @@ -121,7 +121,7 @@ static const uint8 PRIMARY_DRAWING_ORDER_FIELD_BYTES[] = GLYPH_INDEX_ORDER_FIELD_BYTES }; -#define PRIMARY_DRAWING_ORDER_COUNT (sizeof(PRIMARY_DRAWING_ORDER_FIELD_BYTES) / sizeof(PRIMARY_DRAWING_ORDER_FIELD_BYTES[0])) +#define PRIMARY_DRAWING_ORDER_COUNT (ARRAY_SIZE(PRIMARY_DRAWING_ORDER_FIELD_BYTES)) static const uint8 CBR2_BPP[] = { diff --git a/libfreerdp-locale/keyboard_layout.c b/libfreerdp-locale/keyboard_layout.c index 3e4cc564d..ff2ca531b 100644 --- a/libfreerdp-locale/keyboard_layout.c +++ b/libfreerdp-locale/keyboard_layout.c @@ -1001,7 +1001,7 @@ RDP_KEYBOARD_LAYOUT* freerdp_keyboard_get_layouts(uint32 types) if ((types & RDP_KEYBOARD_LAYOUT_TYPE_STANDARD) != 0) { - length = sizeof(RDP_KEYBOARD_LAYOUT_TABLE) / sizeof(RDP_KEYBOARD_LAYOUT); + length = ARRAY_SIZE(RDP_KEYBOARD_LAYOUT_TABLE); layouts = (RDP_KEYBOARD_LAYOUT*) xrealloc(layouts, (num + length + 1) * sizeof(RDP_KEYBOARD_LAYOUT)); for (i = 0; i < length; i++, num++) @@ -1012,7 +1012,7 @@ RDP_KEYBOARD_LAYOUT* freerdp_keyboard_get_layouts(uint32 types) } if ((types & RDP_KEYBOARD_LAYOUT_TYPE_VARIANT) != 0) { - length = sizeof(RDP_KEYBOARD_LAYOUT_VARIANT_TABLE) / sizeof(RDP_KEYBOARD_LAYOUT_VARIANT); + length = ARRAY_SIZE(RDP_KEYBOARD_LAYOUT_VARIANT_TABLE); layouts = (RDP_KEYBOARD_LAYOUT*) xrealloc(layouts, (num + length + 1) * sizeof(RDP_KEYBOARD_LAYOUT)); for (i = 0; i < length; i++, num++) @@ -1023,7 +1023,7 @@ RDP_KEYBOARD_LAYOUT* freerdp_keyboard_get_layouts(uint32 types) } if ((types & RDP_KEYBOARD_LAYOUT_TYPE_IME) != 0) { - length = sizeof(RDP_KEYBOARD_IME_TABLE) / sizeof(RDP_KEYBOARD_IME); + length = ARRAY_SIZE(RDP_KEYBOARD_IME_TABLE); layouts = (RDP_KEYBOARD_LAYOUT*) realloc(layouts, (num + length + 1) * sizeof(RDP_KEYBOARD_LAYOUT)); for (i = 0; i < length; i++, num++) @@ -1042,19 +1042,19 @@ const char* freerdp_keyboard_get_layout_name_from_id(uint32 keyboardLayoutID) { int i; - for (i = 0; i < sizeof(RDP_KEYBOARD_LAYOUT_TABLE) / sizeof(RDP_KEYBOARD_LAYOUT); i++) + for (i = 0; i < ARRAY_SIZE(RDP_KEYBOARD_LAYOUT_TABLE); i++) { if (RDP_KEYBOARD_LAYOUT_TABLE[i].code == keyboardLayoutID) return RDP_KEYBOARD_LAYOUT_TABLE[i].name; } - for (i = 0; i < sizeof(RDP_KEYBOARD_LAYOUT_VARIANT_TABLE) / sizeof(RDP_KEYBOARD_LAYOUT_VARIANT); i++) + for (i = 0; i < ARRAY_SIZE(RDP_KEYBOARD_LAYOUT_VARIANT_TABLE); i++) { if (RDP_KEYBOARD_LAYOUT_VARIANT_TABLE[i].code == keyboardLayoutID) return RDP_KEYBOARD_LAYOUT_VARIANT_TABLE[i].name; } - for (i = 0; i < sizeof(RDP_KEYBOARD_IME_TABLE) / sizeof(RDP_KEYBOARD_IME); i++) + for (i = 0; i < ARRAY_SIZE(RDP_KEYBOARD_IME_TABLE); i++) { if (RDP_KEYBOARD_IME_TABLE[i].code == keyboardLayoutID) return RDP_KEYBOARD_IME_TABLE[i].name; diff --git a/libfreerdp-locale/keyboard_sun.c b/libfreerdp-locale/keyboard_sun.c index 8494ad950..81e0ae612 100644 --- a/libfreerdp-locale/keyboard_sun.c +++ b/libfreerdp-locale/keyboard_sun.c @@ -245,7 +245,7 @@ uint32 freerdp_detect_keyboard_type_and_layout_solaris(char* xkbfile, int length } pclose(kbd); - for (i = 0; i < sizeof(SOLARIS_KEYBOARD_TABLE) / sizeof(SOLARIS_KEYBOARD); i++) + for (i = 0; i < ARRAY_SIZE(SOLARIS_KEYBOARD_TABLE); i++) { if (SOLARIS_KEYBOARD_TABLE[i].type == type) { diff --git a/libfreerdp-locale/keyboard_x11.c b/libfreerdp-locale/keyboard_x11.c index fd95da600..455e811e6 100644 --- a/libfreerdp-locale/keyboard_x11.c +++ b/libfreerdp-locale/keyboard_x11.c @@ -907,7 +907,7 @@ uint32 find_keyboard_layout_in_xorg_rules(char* layout, char* variant) DEBUG_KBD("xkbLayout: %s\txkbVariant: %s", layout, variant); - for (i = 0; i < sizeof(xkbLayouts) / sizeof(XKB_LAYOUT); i++) + for (i = 0; i < ARRAY_SIZE(xkbLayouts); i++) { if (strcmp(xkbLayouts[i].layout, layout) == 0) { diff --git a/libfreerdp-locale/locale.c b/libfreerdp-locale/locale.c index bf0f269cc..2a6c71707 100644 --- a/libfreerdp-locale/locale.c +++ b/libfreerdp-locale/locale.c @@ -22,6 +22,7 @@ #include #include "liblocale.h" +#include #include struct _SYSTEM_LOCALE @@ -673,7 +674,7 @@ SYSTEM_LOCALE* freerdp_detect_system_locale() freerdp_get_system_language_and_country_codes(language, country); - for (i = 0; i < sizeof(SYSTEM_LOCALE_TABLE) / sizeof(SYSTEM_LOCALE); i++) + for (i = 0; i < ARRAY_SIZE(SYSTEM_LOCALE_TABLE); i++) { if ((strcmp(language, SYSTEM_LOCALE_TABLE[i].language) == 0) && (strcmp(country, SYSTEM_LOCALE_TABLE[i].country) == 0)) { @@ -701,7 +702,7 @@ const char* freerdp_get_system_locale_name_from_id(uint32 localeId) { int index; - for (index = 0; index < sizeof(LOCALE_NAME_TABLE) / sizeof(LOCALE_NAME); index++) + for (index = 0; index < ARRAY_SIZE(LOCALE_NAME_TABLE); index++) { if (localeId == LOCALE_NAME_TABLE[index].localeId) return LOCALE_NAME_TABLE[index].name; @@ -729,7 +730,7 @@ uint32 freerdp_detect_keyboard_layout_from_system_locale() DEBUG_KBD("Found locale : %s_%s", locale->language, locale->country); - for (i = 0; i < sizeof(LOCALE_KEYBOARD_LAYOUTS_TABLE) / sizeof(LOCALE_KEYBOARD_LAYOUTS); i++) + for (i = 0; i < ARRAY_SIZE(LOCALE_KEYBOARD_LAYOUTS_TABLE); i++) { if (LOCALE_KEYBOARD_LAYOUTS_TABLE[i].locale == locale->code) { diff --git a/libfreerdp-locale/timezone.c b/libfreerdp-locale/timezone.c index 995f8b96e..b4e5fc31d 100644 --- a/libfreerdp-locale/timezone.c +++ b/libfreerdp-locale/timezone.c @@ -1576,11 +1576,11 @@ TIME_ZONE_ENTRY* freerdp_detect_windows_time_zone(uint32 bias) if (tzid == NULL) return NULL; - for (i = 0; i < sizeof(TimeZoneTable) / sizeof(TIME_ZONE_ENTRY); i++) + for (i = 0; i < ARRAY_SIZE(TimeZoneTable); i++) { if (bias == TimeZoneTable[i].Bias) { - for (j = 0; j < sizeof(WindowsTimeZoneIdTable) / sizeof(WINDOWS_TZID_ENTRY); j++) + for (j = 0; j < ARRAY_SIZE(WindowsTimeZoneIdTable); j++) { if (strcmp(TimeZoneTable[i].Id, WindowsTimeZoneIdTable[j].windows) != 0) continue; diff --git a/libfreerdp-rail/window.c b/libfreerdp-rail/window.c index 39e7cb74c..1ede11627 100644 --- a/libfreerdp-rail/window.c +++ b/libfreerdp-rail/window.c @@ -96,7 +96,7 @@ void print_window_styles(uint32 style) int i; printf("Window Styles:\n{\n"); - for (i = 0; i < sizeof(WINDOW_STYLES) / sizeof(WINDOW_STYLE); i++) + for (i = 0; i < ARRAY_SIZE(WINDOW_STYLES); i++) { if (style & WINDOW_STYLES[i].style) { @@ -117,7 +117,7 @@ void print_extended_window_styles(uint32 style) int i; printf("Extended Window Styles:\n{\n"); - for (i = 0; i < sizeof(EXTENDED_WINDOW_STYLES) / sizeof(WINDOW_STYLE); i++) + for (i = 0; i < ARRAY_SIZE(EXTENDED_WINDOW_STYLES); i++) { if (style & EXTENDED_WINDOW_STYLES[i].style) { diff --git a/libfreerdp-utils/args.c b/libfreerdp-utils/args.c index e205bfe35..881d175c6 100644 --- a/libfreerdp-utils/args.c +++ b/libfreerdp-utils/args.c @@ -596,7 +596,7 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv, printf("missing extension name\n"); return FREERDP_ARGS_PARSE_FAILURE; } - if (num_extensions >= sizeof(settings->extensions) / sizeof(struct rdp_ext_set)) + if (num_extensions >= ARRAY_SIZE(settings->extensions)) { printf("maximum extensions reached\n"); return FREERDP_ARGS_PARSE_FAILURE; diff --git a/libfreerdp-utils/rail.c b/libfreerdp-utils/rail.c index a89329cd3..4cf5906d5 100644 --- a/libfreerdp-utils/rail.c +++ b/libfreerdp-utils/rail.c @@ -110,7 +110,7 @@ void* rail_clone_order(uint32 event_type, void* order) size_t order_size = 0; void* new_order = NULL; - for (i = 0; i < RAIL_ARRAY_SIZE(ordersize_table); i++) + for (i = 0; i < ARRAY_SIZE(ordersize_table); i++) { if (event_type == ordersize_table[i].type) { diff --git a/libfreerdp-utils/signal.c b/libfreerdp-utils/signal.c index 8f9f67520..5889a3d1f 100644 --- a/libfreerdp-utils/signal.c +++ b/libfreerdp-utils/signal.c @@ -19,6 +19,7 @@ #include #include +#include #ifdef _WIN32 #include int freerdp_handle_signals(void) @@ -101,7 +102,7 @@ int freerdp_handle_signals(void) fatal_sigaction.sa_flags = 0; for (signal_index = 0; - signal_index < (sizeof fatal_signals / sizeof fatal_signals[0]); + signal_index < ARRAY_SIZE(fatal_signals); signal_index++) if (sigaction(fatal_signals[signal_index], NULL, &orig_sigaction) == 0)