mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 14:56:40 +08:00 
			
		
		
		
	frontend_common: Set config array size to 0 if the array is ended without changing its index
This commit is contained in:
		
							parent
							
								
									14398a1cbb
								
							
						
					
					
						commit
						1654b8f9e0
					
				| @ -937,15 +937,19 @@ void Config::EndArray() { | |||||||
|     // You can't end a config array before starting one
 |     // You can't end a config array before starting one
 | ||||||
|     ASSERT(!array_stack.empty()); |     ASSERT(!array_stack.empty()); | ||||||
| 
 | 
 | ||||||
|  |     // Set the array size to 0 if the array is ended without changing the index
 | ||||||
|  |     int size = 0; | ||||||
|  |     if (array_stack.back().index != 0) { | ||||||
|  |         size = array_stack.back().size; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     // Write out the size to config
 |     // Write out the size to config
 | ||||||
|     if (key_stack.size() == 1 && array_stack.back().name.empty()) { |     if (key_stack.size() == 1 && array_stack.back().name.empty()) { | ||||||
|         // Edge-case where the first array created doesn't have a name
 |         // Edge-case where the first array created doesn't have a name
 | ||||||
|         config->SetValue(GetSection().c_str(), std::string("size").c_str(), |         config->SetValue(GetSection().c_str(), std::string("size").c_str(), ToString(size).c_str()); | ||||||
|                          ToString(array_stack.back().size).c_str()); |  | ||||||
|     } else { |     } else { | ||||||
|         const auto key = GetFullKey(std::string("size"), true); |         const auto key = GetFullKey(std::string("size"), true); | ||||||
|         config->SetValue(GetSection().c_str(), key.c_str(), |         config->SetValue(GetSection().c_str(), key.c_str(), ToString(size).c_str()); | ||||||
|                          ToString(array_stack.back().size).c_str()); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     array_stack.pop_back(); |     array_stack.pop_back(); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user