Fix MSVC Spectre warnings
This commit is contained in:
		@@ -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;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
 | 
				
			||||||
 | 
					  // MSVC Spectre mitigation warnings
 | 
				
			||||||
 | 
					  Str8Node* node;
 | 
				
			||||||
 | 
					  u64 node_index = 0;
 | 
				
			||||||
  u64 output     = 0;
 | 
					  u64 output     = 0;
 | 
				
			||||||
  for (u64 i = 0; i < list->node_count; ++i) {
 | 
					  bool running   = true;
 | 
				
			||||||
    Str8Node *node = wapp_str8_list_get(list, i);
 | 
					  while (running) {
 | 
				
			||||||
 | 
					      node = wapp_str8_list_get(list, node_index);
 | 
				
			||||||
 | 
					      if (!node) {
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      output += node->item->size;
 | 
					      output += node->item->size;
 | 
				
			||||||
 | 
					      ++node_index;
 | 
				
			||||||
 | 
					      running = node_index < list->node_count;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return output;
 | 
					  return output;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user