Fix MSVC Spectre warnings

This commit is contained in:
Abdelrahman Said 2025-04-20 20:28:02 +01:00
parent 4d69b97149
commit b476ceaeef

View File

@ -422,8 +422,16 @@ Str8 *wapp_str8_join(const Allocator *allocator, const Str8List *list, Str8RO *d
bool running = true; bool running = true;
while (running) { while (running) {
node = wapp_str8_list_get(list, node_index); node = wapp_str8_list_get(list, node_index);
if (!node) {
break;
}
wapp_str8_concat_capped(output, node->item); wapp_str8_concat_capped(output, node->item);
if (node_index + 1 < list->node_count) {
// NOTE (Abdelrahman): Comparison extracted to variable to silence
// MSVC Spectre mitigation warnings
bool not_last = node_index + 1 < list->node_count;
if (not_last) {
wapp_str8_concat_capped(output, delimiter); wapp_str8_concat_capped(output, delimiter);
} }
@ -439,10 +447,21 @@ u64 wapp_str8_list_total_size(const Str8List *list) {
return 0; return 0;
} }
u64 output = 0; // NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
for (u64 i = 0; i < list->node_count; ++i) { // MSVC Spectre mitigation warnings
Str8Node *node = wapp_str8_list_get(list, i); Str8Node* node;
output += node->item->size; u64 node_index = 0;
u64 output = 0;
bool running = true;
while (running) {
node = wapp_str8_list_get(list, node_index);
if (!node) {
break;
}
output += node->item->size;
++node_index;
running = node_index < list->node_count;
} }
return output; return output;