* Clean up exception handling.
This commit is contained in:
		
							parent
							
								
									5a1b9ed0aa
								
							
						
					
					
						commit
						78598d06f0
					
				
					 2 changed files with 10 additions and 3 deletions
				
			
		|  | @ -41,8 +41,15 @@ void BufferedSink::operator () (const unsigned char * data, size_t len) | |||
| void BufferedSink::flush() | ||||
| { | ||||
|     if (bufPos == 0) return; | ||||
|     write(buffer, bufPos); | ||||
|     bufPos = 0; | ||||
|     size_t n = bufPos; | ||||
|     bufPos = 0; // don't trigger the assert() in ~BufferedSink()
 | ||||
|     write(buffer, n); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| FdSink::~FdSink() | ||||
| { | ||||
|     try { flush(); } catch (...) { ignoreException(); } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -71,7 +71,7 @@ struct FdSink : BufferedSink | |||
| 
 | ||||
|     FdSink() : fd(-1) { } | ||||
|     FdSink(int fd) : fd(fd) { } | ||||
|     ~FdSink() { flush(); } | ||||
|     ~FdSink(); | ||||
|      | ||||
|     void write(const unsigned char * data, size_t len); | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue