Update for unsafe-any changes.
This commit is contained in:
		
							
								
								
									
										20
									
								
								src/net.rs
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/net.rs
									
									
									
									
									
								
							| @@ -105,12 +105,20 @@ impl<'a> Writer for &'a mut NetworkStream { | |||||||
|     fn flush(&mut self) -> IoResult<()> { (**self).flush() } |     fn flush(&mut self) -> IoResult<()> { (**self).flush() } | ||||||
| } | } | ||||||
|  |  | ||||||
| impl UncheckedBoxAnyDowncast for Box<NetworkStream + Send> { | impl UnsafeAnyExt for NetworkStream + Send { | ||||||
|     unsafe fn downcast_unchecked<T: 'static>(self) -> Box<T>  { |     unsafe fn downcast_ref_unchecked<T: 'static>(&self) -> &T { | ||||||
|         let to = *mem::transmute::<&Box<NetworkStream + Send>, &raw::TraitObject>(&self); |         mem::transmute(mem::transmute::<&NetworkStream + Send, | ||||||
|         // Prevent double-free. |                                         raw::TraitObject>(self).data) | ||||||
|         mem::forget(self); |     } | ||||||
|         mem::transmute(to.data) |  | ||||||
|  |     unsafe fn downcast_mut_unchecked<T: 'static>(&mut self) -> &mut T { | ||||||
|  |         mem::transmute(mem::transmute::<&mut NetworkStream + Send, | ||||||
|  |                                         raw::TraitObject>(self).data) | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     unsafe fn downcast_unchecked<T: 'static>(self: Box<NetworkStream + Send>) -> Box<T>  { | ||||||
|  |         mem::transmute(mem::transmute::<Box<NetworkStream + Send>, | ||||||
|  |                                         raw::TraitObject>(self).data) | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user