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;
 | 
			
		||||
  while (running) {
 | 
			
		||||
    node = wapp_str8_list_get(list, node_index);
 | 
			
		||||
    if (!node) {
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -439,10 +447,21 @@ u64 wapp_str8_list_total_size(const Str8List *list) {
 | 
			
		||||
    return 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  u64 output = 0;
 | 
			
		||||
  for (u64 i = 0; i < list->node_count; ++i) {
 | 
			
		||||
    Str8Node *node = wapp_str8_list_get(list, i);
 | 
			
		||||
    output += node->item->size;
 | 
			
		||||
  // 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;
 | 
			
		||||
  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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user