MidiSource: Close source SDL_RWops before throwing error
This commit is contained in:
		
							parent
							
								
									1e9e24e45c
								
							
						
					
					
						commit
						5382cc11a3
					
				
					 1 changed files with 12 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -626,9 +626,20 @@ struct MidiSource : ALDataSource, MidiReadHandler
 | 
			
		|||
		std::vector<uint8_t> data(dataLen);
 | 
			
		||||
 | 
			
		||||
		if (SDL_RWread(&ops, &data[0], 1, dataLen) < dataLen)
 | 
			
		||||
		{
 | 
			
		||||
			SDL_RWclose(&ops);
 | 
			
		||||
			throw Exception(Exception::MKXPError, "Reading midi data failed");
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		readMidi(this, data);
 | 
			
		||||
		try
 | 
			
		||||
		{
 | 
			
		||||
			readMidi(this, data);
 | 
			
		||||
		}
 | 
			
		||||
		catch (const Exception &)
 | 
			
		||||
		{
 | 
			
		||||
			SDL_RWclose(&ops);
 | 
			
		||||
			throw;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		synth = shState->midiState().allocateSynth();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue