diff --git a/src/common/font.c b/src/common/font.c index 80a67144c..13264f577 100644 --- a/src/common/font.c +++ b/src/common/font.c @@ -51,7 +51,7 @@ static void fontInitPretty(FFfont* font) for(uint32_t i = 0; i < font->styles.length; i++) { - ffStrbufAppend(&font->pretty, ffListGet(&font->styles, i)); + ffStrbufAppend(&font->pretty, FF_LIST_GET(FFstrbuf, font->styles, i)); if(i < font->styles.length - 1) ffStrbufAppendS(&font->pretty, ", "); @@ -86,7 +86,7 @@ void ffFontInitQt(FFfont* font, const char* data) { do { - FFstrbuf* style = ffListAdd(&font->styles); + FFstrbuf* style = (FFstrbuf*) ffListAdd(&font->styles); ffStrbufInit(style); data = ffStrbufAppendSUntilC(style, data, ' '); if (data) data++; @@ -142,7 +142,7 @@ static void fontPangoParseWord(const char** data, FFfont* font, FFstrbuf* altern ) { if(alternativeBuffer == NULL) { - alternativeBuffer = ffListAdd(&font->styles); + alternativeBuffer = (FFstrbuf*) ffListAdd(&font->styles); ffStrbufInit(alternativeBuffer); } @@ -215,7 +215,7 @@ void ffFontDestroy(FFfont* font) ffStrbufDestroy(&font->name); ffStrbufDestroy(&font->size); - for(uint32_t i = 0; i < font->styles.length; i++) - ffStrbufDestroy(ffListGet(&font->styles, i)); + FF_LIST_FOR_EACH(FFstrbuf, str, font->styles) + ffStrbufDestroy(str); ffListDestroy(&font->styles); } diff --git a/src/common/format.c b/src/common/format.c index 1e8c92702..19564a3fb 100644 --- a/src/common/format.c +++ b/src/common/format.c @@ -42,10 +42,10 @@ void ffFormatAppendFormatArg(FFstrbuf* buffer, const FFformatarg* formatarg) break; case FF_FORMAT_ARG_TYPE_LIST: { - const FFlist* list = formatarg->value; + const FFlist* list = (const FFlist*) formatarg->value; for(uint32_t i = 0; i < list->length; i++) { - ffStrbufAppend(buffer, ffListGet(list, i)); + ffStrbufAppend(buffer, FF_LIST_GET(FFstrbuf, *list, i)); if(i < list->length - 1) ffStrbufAppendS(buffer, ", "); } @@ -110,7 +110,7 @@ static inline bool formatArgSet(const FFformatarg* arg) (arg->type == FF_FORMAT_ARG_TYPE_DOUBLE && *(double*)arg->value > 0.0) || //Also is false for NaN (arg->type == FF_FORMAT_ARG_TYPE_INT && *(int*)arg->value > 0) || (arg->type == FF_FORMAT_ARG_TYPE_STRBUF && ((FFstrbuf*)arg->value)->length > 0) || - (arg->type == FF_FORMAT_ARG_TYPE_STRING && ffStrSet(arg->value)) || + (arg->type == FF_FORMAT_ARG_TYPE_STRING && ffStrSet((char*)arg->value)) || (arg->type == FF_FORMAT_ARG_TYPE_UINT8 && *(uint8_t*)arg->value > 0) || (arg->type == FF_FORMAT_ARG_TYPE_UINT16 && *(uint16_t*)arg->value > 0) || (arg->type == FF_FORMAT_ARG_TYPE_UINT && *(uint32_t*)arg->value > 0) || diff --git a/src/common/modules.c b/src/common/modules.c index ce649cfc9..724c1aa49 100644 --- a/src/common/modules.c +++ b/src/common/modules.c @@ -5,65 +5,65 @@ static FFModuleBaseInfo* A[] = { }; static FFModuleBaseInfo* B[] = { - (void*) &instance.config.modules.battery, - (void*) &instance.config.modules.bios, - (void*) &instance.config.modules.bluetooth, - (void*) &instance.config.modules.bluetoothRadio, - (void*) &instance.config.modules.board, - (void*) &instance.config.modules.bootmgr, - (void*) &instance.config.modules.break_, - (void*) &instance.config.modules.brightness, - (void*) &instance.config.modules.btrfs, + (FFModuleBaseInfo*) &instance.config.modules.battery, + (FFModuleBaseInfo*) &instance.config.modules.bios, + (FFModuleBaseInfo*) &instance.config.modules.bluetooth, + (FFModuleBaseInfo*) &instance.config.modules.bluetoothRadio, + (FFModuleBaseInfo*) &instance.config.modules.board, + (FFModuleBaseInfo*) &instance.config.modules.bootmgr, + (FFModuleBaseInfo*) &instance.config.modules.break_, + (FFModuleBaseInfo*) &instance.config.modules.brightness, + (FFModuleBaseInfo*) &instance.config.modules.btrfs, NULL, }; static FFModuleBaseInfo* C[] = { - (void*) &instance.config.modules.camera, - (void*) &instance.config.modules.chassis, - (void*) &instance.config.modules.command, - (void*) &instance.config.modules.colors, - (void*) &instance.config.modules.cpu, - (void*) &instance.config.modules.cpuCache, - (void*) &instance.config.modules.cpuUsage, - (void*) &instance.config.modules.cursor, - (void*) &instance.config.modules.custom, + (FFModuleBaseInfo*) &instance.config.modules.camera, + (FFModuleBaseInfo*) &instance.config.modules.chassis, + (FFModuleBaseInfo*) &instance.config.modules.command, + (FFModuleBaseInfo*) &instance.config.modules.colors, + (FFModuleBaseInfo*) &instance.config.modules.cpu, + (FFModuleBaseInfo*) &instance.config.modules.cpuCache, + (FFModuleBaseInfo*) &instance.config.modules.cpuUsage, + (FFModuleBaseInfo*) &instance.config.modules.cursor, + (FFModuleBaseInfo*) &instance.config.modules.custom, NULL, }; static FFModuleBaseInfo* D[] = { - (void*) &instance.config.modules.dateTime, - (void*) &instance.config.modules.de, - (void*) &instance.config.modules.display, - (void*) &instance.config.modules.disk, - (void*) &instance.config.modules.diskIo, - (void*) &instance.config.modules.dns, + (FFModuleBaseInfo*) &instance.config.modules.dateTime, + (FFModuleBaseInfo*) &instance.config.modules.de, + (FFModuleBaseInfo*) &instance.config.modules.display, + (FFModuleBaseInfo*) &instance.config.modules.disk, + (FFModuleBaseInfo*) &instance.config.modules.diskIo, + (FFModuleBaseInfo*) &instance.config.modules.dns, NULL, }; static FFModuleBaseInfo* E[] = { - (void*) &instance.config.modules.editor, + (FFModuleBaseInfo*) &instance.config.modules.editor, NULL, }; static FFModuleBaseInfo* F[] = { - (void*) &instance.config.modules.font, + (FFModuleBaseInfo*) &instance.config.modules.font, NULL, }; static FFModuleBaseInfo* G[] = { - (void*) &instance.config.modules.gamepad, - (void*) &instance.config.modules.gpu, + (FFModuleBaseInfo*) &instance.config.modules.gamepad, + (FFModuleBaseInfo*) &instance.config.modules.gpu, NULL, }; static FFModuleBaseInfo* H[] = { - (void*) &instance.config.modules.host, + (FFModuleBaseInfo*) &instance.config.modules.host, NULL, }; static FFModuleBaseInfo* I[] = { - (void*) &instance.config.modules.icons, - (void*) &instance.config.modules.initSystem, + (FFModuleBaseInfo*) &instance.config.modules.icons, + (FFModuleBaseInfo*) &instance.config.modules.initSystem, NULL, }; @@ -72,47 +72,47 @@ static FFModuleBaseInfo* J[] = { }; static FFModuleBaseInfo* K[] = { - (void*) &instance.config.modules.kernel, - (void*) &instance.config.modules.keyboard, + (FFModuleBaseInfo*) &instance.config.modules.kernel, + (FFModuleBaseInfo*) &instance.config.modules.keyboard, NULL, }; static FFModuleBaseInfo* L[] = { - (void*) &instance.config.modules.lm, - (void*) &instance.config.modules.loadavg, - (void*) &instance.config.modules.locale, - (void*) &instance.config.modules.localIP, + (FFModuleBaseInfo*) &instance.config.modules.lm, + (FFModuleBaseInfo*) &instance.config.modules.loadavg, + (FFModuleBaseInfo*) &instance.config.modules.locale, + (FFModuleBaseInfo*) &instance.config.modules.localIP, NULL, }; static FFModuleBaseInfo* M[] = { - (void*) &instance.config.modules.media, - (void*) &instance.config.modules.memory, - (void*) &instance.config.modules.monitor, - (void*) &instance.config.modules.mouse, + (FFModuleBaseInfo*) &instance.config.modules.media, + (FFModuleBaseInfo*) &instance.config.modules.memory, + (FFModuleBaseInfo*) &instance.config.modules.monitor, + (FFModuleBaseInfo*) &instance.config.modules.mouse, NULL, }; static FFModuleBaseInfo* N[] = { - (void*) &instance.config.modules.netIo, + (FFModuleBaseInfo*) &instance.config.modules.netIo, NULL, }; static FFModuleBaseInfo* O[] = { - (void*) &instance.config.modules.openCL, - (void*) &instance.config.modules.openGL, - (void*) &instance.config.modules.os, + (FFModuleBaseInfo*) &instance.config.modules.openCL, + (FFModuleBaseInfo*) &instance.config.modules.openGL, + (FFModuleBaseInfo*) &instance.config.modules.os, NULL, }; static FFModuleBaseInfo* P[] = { - (void*) &instance.config.modules.packages, - (void*) &instance.config.modules.physicalDisk, - (void*) &instance.config.modules.physicalMemory, - (void*) &instance.config.modules.player, - (void*) &instance.config.modules.powerAdapter, - (void*) &instance.config.modules.processes, - (void*) &instance.config.modules.publicIP, + (FFModuleBaseInfo*) &instance.config.modules.packages, + (FFModuleBaseInfo*) &instance.config.modules.physicalDisk, + (FFModuleBaseInfo*) &instance.config.modules.physicalMemory, + (FFModuleBaseInfo*) &instance.config.modules.player, + (FFModuleBaseInfo*) &instance.config.modules.powerAdapter, + (FFModuleBaseInfo*) &instance.config.modules.processes, + (FFModuleBaseInfo*) &instance.config.modules.publicIP, NULL, }; @@ -125,42 +125,42 @@ static FFModuleBaseInfo* R[] = { }; static FFModuleBaseInfo* S[] = { - (void*) &instance.config.modules.separator, - (void*) &instance.config.modules.shell, - (void*) &instance.config.modules.sound, - (void*) &instance.config.modules.swap, + (FFModuleBaseInfo*) &instance.config.modules.separator, + (FFModuleBaseInfo*) &instance.config.modules.shell, + (FFModuleBaseInfo*) &instance.config.modules.sound, + (FFModuleBaseInfo*) &instance.config.modules.swap, NULL, }; static FFModuleBaseInfo* T[] = { - (void*) &instance.config.modules.terminal, - (void*) &instance.config.modules.terminalFont, - (void*) &instance.config.modules.terminalSize, - (void*) &instance.config.modules.terminalTheme, - (void*) &instance.config.modules.title, - (void*) &instance.config.modules.theme, - (void*) &instance.config.modules.tpm, + (FFModuleBaseInfo*) &instance.config.modules.terminal, + (FFModuleBaseInfo*) &instance.config.modules.terminalFont, + (FFModuleBaseInfo*) &instance.config.modules.terminalSize, + (FFModuleBaseInfo*) &instance.config.modules.terminalTheme, + (FFModuleBaseInfo*) &instance.config.modules.title, + (FFModuleBaseInfo*) &instance.config.modules.theme, + (FFModuleBaseInfo*) &instance.config.modules.tpm, NULL, }; static FFModuleBaseInfo* U[] = { - (void*) &instance.config.modules.uptime, - (void*) &instance.config.modules.users, + (FFModuleBaseInfo*) &instance.config.modules.uptime, + (FFModuleBaseInfo*) &instance.config.modules.users, NULL, }; static FFModuleBaseInfo* V[] = { - (void*) &instance.config.modules.version, - (void*) &instance.config.modules.vulkan, + (FFModuleBaseInfo*) &instance.config.modules.version, + (FFModuleBaseInfo*) &instance.config.modules.vulkan, NULL, }; static FFModuleBaseInfo* W[] = { - (void*) &instance.config.modules.wallpaper, - (void*) &instance.config.modules.weather, - (void*) &instance.config.modules.wm, - (void*) &instance.config.modules.wifi, - (void*) &instance.config.modules.wmTheme, + (FFModuleBaseInfo*) &instance.config.modules.wallpaper, + (FFModuleBaseInfo*) &instance.config.modules.weather, + (FFModuleBaseInfo*) &instance.config.modules.wm, + (FFModuleBaseInfo*) &instance.config.modules.wifi, + (FFModuleBaseInfo*) &instance.config.modules.wmTheme, NULL, }; @@ -173,7 +173,7 @@ static FFModuleBaseInfo* Y[] = { }; static FFModuleBaseInfo* Z[] = { - (void*) &instance.config.modules.zpool, + (FFModuleBaseInfo*) &instance.config.modules.zpool, NULL, }; diff --git a/src/common/parsing.c b/src/common/parsing.c index 50f1a54aa..dce4cef02 100644 --- a/src/common/parsing.c +++ b/src/common/parsing.c @@ -72,7 +72,7 @@ static void parseSize(FFstrbuf* result, uint64_t bytes, uint32_t base, const cha } if(counter == 0) - ffStrbufAppendF(result, "%"PRIu64" %s", bytes, prefixes[0]); + ffStrbufAppendF(result, "%" PRIu64 " %s", bytes, prefixes[0]); else ffStrbufAppendF(result, "%.*f %s", instance.config.display.sizeNdigits, size, prefixes[counter]); } diff --git a/src/detection/bootmgr/bootmgr.c b/src/detection/bootmgr/bootmgr.c index 9d4dfa838..47c9a418a 100644 --- a/src/detection/bootmgr/bootmgr.c +++ b/src/detection/bootmgr/bootmgr.c @@ -34,9 +34,9 @@ bool ffEfiFillLoadOption(const FFEfiLoadOption* efiOption, FFBootmgrResult* resu ffEfiUcs2ToUtf8(efiOption->Description, &result->name); for ( - ffEfiDevicePathProtocol* filePathList = (void*) &efiOption->Description[descLen + 1]; + ffEfiDevicePathProtocol* filePathList = (ffEfiDevicePathProtocol*) &efiOption->Description[descLen + 1]; filePathList->Type != 0x7F; // End of Hardware Device Path - filePathList = (void*) ((uint8_t*) filePathList + filePathList->Length)) + filePathList = (ffEfiDevicePathProtocol*) ((uint8_t*) filePathList + filePathList->Length)) { if (filePathList->Type == 4 && filePathList->SubType == 4) { diff --git a/src/detection/cpuusage/cpuusage.c b/src/detection/cpuusage/cpuusage.c index f6cfd37ce..d89c54919 100644 --- a/src/detection/cpuusage/cpuusage.c +++ b/src/detection/cpuusage/cpuusage.c @@ -36,8 +36,8 @@ retry: for (uint32_t i = 0; i < cpuTimes1.length; ++i) { - FFCpuUsageInfo* cpuTime1 = ffListGet(&cpuTimes1, i); - FFCpuUsageInfo* cpuTime2 = ffListGet(&cpuTimes2, i); + FFCpuUsageInfo* cpuTime1 = FF_LIST_GET(FFCpuUsageInfo, cpuTimes1, i); + FFCpuUsageInfo* cpuTime2 = FF_LIST_GET(FFCpuUsageInfo, cpuTimes2, i); if (cpuTime2->totalAll <= cpuTime1->totalAll) { if (++retryCount <= 3) @@ -51,8 +51,8 @@ retry: for (uint32_t i = 0; i < cpuTimes1.length; ++i) { - FFCpuUsageInfo* cpuTime1 = ffListGet(&cpuTimes1, i); - FFCpuUsageInfo* cpuTime2 = ffListGet(&cpuTimes2, i); + FFCpuUsageInfo* cpuTime1 = FF_LIST_GET(FFCpuUsageInfo, cpuTimes1, i); + FFCpuUsageInfo* cpuTime2 = FF_LIST_GET(FFCpuUsageInfo, cpuTimes2, i); *(double*) ffListAdd(result) = (double)(cpuTime2->inUseAll - cpuTime1->inUseAll) / (double)(cpuTime2->totalAll - cpuTime1->totalAll) * 100; cpuTime1->inUseAll = cpuTime2->inUseAll; cpuTime1->totalAll = cpuTime2->totalAll; diff --git a/src/detection/disk/disk_linux.c b/src/detection/disk/disk_linux.c index 41600e7ef..4480d4d23 100644 --- a/src/detection/disk/disk_linux.c +++ b/src/detection/disk/disk_linux.c @@ -176,7 +176,7 @@ static bool isSubvolume(const FFlist* disks, FFDisk* currentDisk) FF_STRBUF_AUTO_DESTROY zpoolName = ffStrbufCreateNS(index, currentDisk->mountFrom.chars); for(uint32_t i = 0; i < disks->length - 1; i++) { - const FFDisk* otherDevice = ffListGet(disks, i); + const FFDisk* otherDevice = FF_LIST_GET(FFDisk, *disks, i); if(ffStrbufEqualS(&otherDevice->filesystem, "zfs") && ffStrbufStartsWith(&otherDevice->mountFrom, &zpoolName)) return true; } @@ -188,7 +188,7 @@ static bool isSubvolume(const FFlist* disks, FFDisk* currentDisk) //Filter all disks which device was already found. This catches BTRFS subvolumes. for(uint32_t i = 0; i < disks->length - 1; i++) { - const FFDisk* otherDevice = ffListGet(disks, i); + const FFDisk* otherDevice = FF_LIST_GET(FFDisk, *disks, i); if(ffStrbufEqual(¤tDisk->mountFrom, &otherDevice->mountFrom)) return true; diff --git a/src/detection/disk/disk_sunos.c b/src/detection/disk/disk_sunos.c index e2d6d714e..af19d74d4 100644 --- a/src/detection/disk/disk_sunos.c +++ b/src/detection/disk/disk_sunos.c @@ -48,7 +48,7 @@ static bool isSubvolume(const FFlist* disks, FFDisk* currentDisk) FF_STRBUF_AUTO_DESTROY zpoolName = ffStrbufCreateNS(index, currentDisk->mountFrom.chars); for(uint32_t i = 0; i < disks->length - 1; i++) { - const FFDisk* otherDevice = ffListGet(disks, i); + const FFDisk* otherDevice = FF_LIST_GET(FFDisk, *disks, i); if(ffStrbufEqualS(&otherDevice->filesystem, "zfs") && ffStrbufStartsWith(&otherDevice->mountFrom, &zpoolName)) return true; } @@ -60,7 +60,7 @@ static bool isSubvolume(const FFlist* disks, FFDisk* currentDisk) //Filter all disks which device was already found. This catches BTRFS subvolumes. for(uint32_t i = 0; i < disks->length - 1; i++) { - const FFDisk* otherDevice = ffListGet(disks, i); + const FFDisk* otherDevice = FF_LIST_GET(FFDisk, *disks, i); if(ffStrbufEqual(¤tDisk->mountFrom, &otherDevice->mountFrom)) return true; diff --git a/src/detection/diskio/diskio.c b/src/detection/diskio/diskio.c index 4c129d794..1677c5cf2 100644 --- a/src/detection/diskio/diskio.c +++ b/src/detection/diskio/diskio.c @@ -56,8 +56,8 @@ const char* ffDetectDiskIO(FFlist* result, FFDiskIOOptions* options) for (uint32_t i = 0; i < result->length; ++i) { - FFDiskIOResult* icPrev = (FFDiskIOResult*)ffListGet(&ioCounters1, i); - FFDiskIOResult* icCurr = (FFDiskIOResult*)ffListGet(result, i); + FFDiskIOResult* icPrev = FF_LIST_GET(FFDiskIOResult, ioCounters1, i); + FFDiskIOResult* icCurr = FF_LIST_GET(FFDiskIOResult, *result, i); if (!ffStrbufEqual(&icPrev->devPath, &icCurr->devPath)) return "Physical disk device path changed"; diff --git a/src/detection/displayserver/displayserver.c b/src/detection/displayserver/displayserver.c index 235c00dc2..c2ba3e593 100644 --- a/src/detection/displayserver/displayserver.c +++ b/src/detection/displayserver/displayserver.c @@ -19,7 +19,7 @@ FFDisplayResult* ffdsAppendDisplay( if(width == 0 || height == 0) return NULL; - FFDisplayResult* display = ffListAdd(&result->displays); + FFDisplayResult* display = (FFDisplayResult*) ffListAdd(&result->displays); display->width = width; display->height = height; display->refreshRate = refreshRate; diff --git a/src/detection/netio/netio.c b/src/detection/netio/netio.c index bcb64bca0..0c4084388 100644 --- a/src/detection/netio/netio.c +++ b/src/detection/netio/netio.c @@ -56,8 +56,8 @@ const char* ffDetectNetIO(FFlist* result, FFNetIOOptions* options) for (uint32_t i = 0; i < result->length; ++i) { - FFNetIOResult* icPrev = (FFNetIOResult*)ffListGet(&ioCounters1, i); - FFNetIOResult* icCurr = (FFNetIOResult*)ffListGet(result, i); + FFNetIOResult* icPrev = FF_LIST_GET(FFNetIOResult, ioCounters1, i); + FFNetIOResult* icCurr = FF_LIST_GET(FFNetIOResult, *result, i); if (!ffStrbufEqual(&icPrev->name, &icCurr->name)) return "Network interface name changed"; diff --git a/src/fastfetch.c b/src/fastfetch.c index 8be2ab211..07acf68a5 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -370,7 +370,7 @@ static void generateConfigFile(bool force, const char* filePath) { if (!filePath) { - ffStrbufSet(&instance.state.genConfigPath, (FFstrbuf*) ffListGet(&instance.state.platform.configDirs, 0)); + ffStrbufSet(&instance.state.genConfigPath, FF_LIST_GET(FFstrbuf, instance.state.platform.configDirs, 0)); ffStrbufAppendS(&instance.state.genConfigPath, "fastfetch/config.jsonc"); } else diff --git a/src/fastfetch.h b/src/fastfetch.h index ae9d0657f..a95ab7501 100644 --- a/src/fastfetch.h +++ b/src/fastfetch.h @@ -27,11 +27,11 @@ #ifdef __has_builtin #if __has_builtin(__builtin_types_compatible_p) - #define ARRAY_SIZE(x) ({ static_assert(!__builtin_types_compatible_p(__typeof__(x), __typeof__(&*(x))), "Must not be a pointer"); sizeof(x) / sizeof(*(x)); }) + #define ARRAY_SIZE(x) ({ static_assert(!__builtin_types_compatible_p(__typeof__(x), __typeof__(&*(x))), "Must not be a pointer"); (uint32_t) (sizeof(x) / sizeof(*(x))); }) #endif #endif #ifndef ARRAY_SIZE - #define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) + #define ARRAY_SIZE(x) ((uint32_t) (sizeof(x) / sizeof(*(x)))) #endif diff --git a/src/modules/bluetooth/bluetooth.c b/src/modules/bluetooth/bluetooth.c index a6bca3bce..b00ff013c 100644 --- a/src/modules/bluetooth/bluetooth.c +++ b/src/modules/bluetooth/bluetooth.c @@ -74,7 +74,7 @@ void ffPrintBluetooth(FFBluetoothOptions* options) for(uint32_t i = 0; i < filtered.length; i++) { uint8_t index = (uint8_t) (filtered.length == 1 ? 0 : i + 1); - printDevice(options, *(FFBluetoothResult**)ffListGet(&filtered, i), index); + printDevice(options, *FF_LIST_GET(FFBluetoothResult*, filtered, i), index); } } diff --git a/src/modules/display/display.c b/src/modules/display/display.c index e845ff164..98255ed46 100644 --- a/src/modules/display/display.c +++ b/src/modules/display/display.c @@ -75,7 +75,7 @@ void ffPrintDisplay(FFDisplayOptions* options) for(uint32_t i = 0; i < dsResult->displays.length; i++) { - FFDisplayResult* result = ffListGet(&dsResult->displays, i); + FFDisplayResult* result = FF_LIST_GET(FFDisplayResult, dsResult->displays, i); uint32_t moduleIndex = dsResult->displays.length == 1 ? 0 : i + 1; const char* displayType = result->type == FF_DISPLAY_TYPE_UNKNOWN ? NULL : result->type == FF_DISPLAY_TYPE_BUILTIN ? "built-in" : "external"; diff --git a/src/modules/gpu/gpu.c b/src/modules/gpu/gpu.c index 1d449d33a..57a7b9a8a 100644 --- a/src/modules/gpu/gpu.c +++ b/src/modules/gpu/gpu.c @@ -133,7 +133,7 @@ void ffPrintGPU(FFGPUOptions* options) } for(uint32_t i = 0; i < selectedGPUs.length; i++) - printGPUResult(options, selectedGPUs.length == 1 ? 0 : (uint8_t) (i + 1), * (const FFGPUResult**) ffListGet(&selectedGPUs, i)); + printGPUResult(options, selectedGPUs.length == 1 ? 0 : (uint8_t) (i + 1), *FF_LIST_GET(const FFGPUResult*, selectedGPUs, i)); if(selectedGPUs.length == 0) ffPrintError(FF_GPU_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, "No GPUs found"); diff --git a/src/modules/poweradapter/poweradapter.c b/src/modules/poweradapter/poweradapter.c index 3445f7c35..76745e6e1 100644 --- a/src/modules/poweradapter/poweradapter.c +++ b/src/modules/poweradapter/poweradapter.c @@ -25,7 +25,7 @@ void ffPrintPowerAdapter(FFPowerAdapterOptions* options) { for(uint8_t i = 0; i < (uint8_t) results.length; i++) { - FFPowerAdapterResult* result = ffListGet(&results, i); + FFPowerAdapterResult* result = FF_LIST_GET(FFPowerAdapterResult, results, i); if(options->moduleArgs.outputFormat.length == 0) { diff --git a/src/modules/users/users.c b/src/modules/users/users.c index 3c7db48e0..7be21109b 100644 --- a/src/modules/users/users.c +++ b/src/modules/users/users.c @@ -38,7 +38,7 @@ void ffPrintUsers(FFUsersOptions* options) { if(i > 0) ffStrbufAppendS(&result, ", "); - FFUserResult* user = (FFUserResult*)ffListGet(&users, i); + FFUserResult* user = FF_LIST_GET(FFUserResult, users, i); ffStrbufAppend(&result, &user->name); } ffStrbufPutTo(&result, stdout); @@ -47,7 +47,7 @@ void ffPrintUsers(FFUsersOptions* options) { for(uint32_t i = 0; i < users.length; ++i) { - FFUserResult* user = (FFUserResult*)ffListGet(&users, i); + FFUserResult* user = FF_LIST_GET(FFUserResult, users, i); ffPrintLogoAndKey(FF_USERS_MODULE_NAME, users.length == 1 ? 0 : (uint8_t) (i + 1), &options->moduleArgs, FF_PRINT_TYPE_DEFAULT); @@ -66,7 +66,7 @@ void ffPrintUsers(FFUsersOptions* options) { for(uint32_t i = 0; i < users.length; ++i) { - FFUserResult* user = (FFUserResult*)ffListGet(&users, i); + FFUserResult* user = FF_LIST_GET(FFUserResult, users, i); FF_PRINT_FORMAT_CHECKED(FF_USERS_MODULE_NAME, users.length == 1 ? 0 : (uint8_t) (i + 1), &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, FF_USERS_NUM_FORMAT_ARGS, ((FFformatarg[]){ FF_FORMAT_ARG(user->name, "name"), diff --git a/src/modules/wifi/wifi.c b/src/modules/wifi/wifi.c index ace8340a1..d000c7e6b 100644 --- a/src/modules/wifi/wifi.c +++ b/src/modules/wifi/wifi.c @@ -24,7 +24,7 @@ void ffPrintWifi(FFWifiOptions* options) for(uint32_t index = 0; index < result.length; ++index) { - FFWifiResult* item = (FFWifiResult*)ffListGet(&result, index); + FFWifiResult* item = FF_LIST_GET(FFWifiResult, result, index); uint8_t moduleIndex = result.length == 1 ? 0 : (uint8_t)(index + 1); if(options->moduleArgs.outputFormat.length == 0) diff --git a/src/util/FFlist.c b/src/util/FFlist.c index 59f5a8b56..e640f507e 100644 --- a/src/util/FFlist.c +++ b/src/util/FFlist.c @@ -3,14 +3,6 @@ #include #include -void ffListInitA(FFlist* list, uint32_t elementSize, uint32_t capacity) -{ - list->elementSize = elementSize; - list->capacity = capacity; - list->length = 0; - list->data = capacity == 0 ? NULL : malloc((size_t)list->capacity * list->elementSize); -} - void* ffListAdd(FFlist* list) { if(list->length == list->capacity) @@ -24,17 +16,6 @@ void* ffListAdd(FFlist* list) return ffListGet(list, list->length - 1); } -uint32_t ffListFirstIndexComp(const FFlist* list, void* compElement, bool(*compFunc)(const void*, const void*)) -{ - for(uint32_t i = 0; i < list->length; i++) - { - if(compFunc(ffListGet(list, i), compElement)) - return i; - } - - return list->length; -} - bool ffListShift(FFlist* list, void* result) { if(list->length == 0) diff --git a/src/util/FFlist.h b/src/util/FFlist.h index c3fd451e5..a4b2f64c4 100644 --- a/src/util/FFlist.h +++ b/src/util/FFlist.h @@ -17,12 +17,8 @@ typedef struct FFlist uint32_t capacity; } FFlist; -void ffListInitA(FFlist* list, uint32_t elementSize, uint32_t capacity); - void* ffListAdd(FFlist* list); -FF_C_NODISCARD uint32_t ffListFirstIndexComp(const FFlist* list, void* compElement, bool(*compFunc)(const void*, const void*)); - // Removes the first element, and copy its value to `*result` bool ffListShift(FFlist* list, void* result); // Removes the last element, and copy its value to `*result` @@ -37,6 +33,13 @@ static inline void ffListInit(FFlist* list, uint32_t elementSize) list->data = NULL; } +static inline void ffListInitA(FFlist* list, uint32_t elementSize, uint32_t capacity) +{ + ffListInit(list, elementSize); + list->capacity = capacity; + list->data = __builtin_expect(capacity == 0, 0) ? NULL : (char*) malloc((size_t)list->capacity * list->elementSize); +} + static inline FFlist ffListCreate(uint32_t elementSize) { FFlist result; @@ -50,6 +53,17 @@ static inline void* ffListGet(const FFlist* list, uint32_t index) return list->data + (index * list->elementSize); } +FF_C_NODISCARD static inline uint32_t ffListFirstIndexComp(const FFlist* list, void* compElement, bool(*compFunc)(const void*, const void*)) +{ + for(uint32_t i = 0; i < list->length; i++) + { + if(compFunc(ffListGet(list, i), compElement)) + return i; + } + + return list->length; +} + static inline bool ffListContains(const FFlist* list, void* compElement, bool(*compFunc)(const void*, const void*)) { return ffListFirstIndexComp(list, compElement, compFunc) != list->length;