upgrade rustyline
This commit is contained in:
37
src/arena.rs
37
src/arena.rs
@@ -373,51 +373,42 @@ impl Arena {
|
||||
unsafe fn drop_slab_in_place(value: &mut AllocSlab) {
|
||||
match value.header.tag() {
|
||||
ArenaHeaderTag::Integer => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut Integer);
|
||||
ptr::drop_in_place(value.payload_offset::<Integer>());
|
||||
}
|
||||
ArenaHeaderTag::Rational => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut Rational);
|
||||
ptr::drop_in_place(value.payload_offset::<Rational>());
|
||||
}
|
||||
ArenaHeaderTag::InputFileStream => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut InputFileStream);
|
||||
ptr::drop_in_place(value.payload_offset::<InputFileStream>());
|
||||
}
|
||||
ArenaHeaderTag::OutputFileStream => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut OutputFileStream);
|
||||
ptr::drop_in_place(value.payload_offset::<OutputFileStream>());
|
||||
}
|
||||
ArenaHeaderTag::NamedTcpStream => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut NamedTcpStream);
|
||||
ptr::drop_in_place(value.payload_offset::<NamedTcpStream>());
|
||||
}
|
||||
ArenaHeaderTag::NamedTlsStream => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut NamedTlsStream);
|
||||
ptr::drop_in_place(value.payload_offset::<NamedTlsStream>());
|
||||
}
|
||||
// ArenaHeaderTag::PausedPrologStream => {
|
||||
// // idea: PausedPrologStream with only the buffer of unread characters.
|
||||
// // no stream to be wrapped, no nuttin'.
|
||||
// ptr::drop_in_place(value.payload_offset() as *mut PausedPrologStream);
|
||||
// }
|
||||
ArenaHeaderTag::ReadlineStream => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut ReadlineStream);
|
||||
ptr::drop_in_place(value.payload_offset::<ReadlineStream>());
|
||||
}
|
||||
ArenaHeaderTag::StaticStringStream => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut StaticStringStream);
|
||||
ptr::drop_in_place(value.payload_offset::<StaticStringStream>());
|
||||
}
|
||||
ArenaHeaderTag::ByteStream => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut ByteStream);
|
||||
ptr::drop_in_place(value.payload_offset::<ByteStream>());
|
||||
}
|
||||
ArenaHeaderTag::OssifiedOpDir => {
|
||||
ptr::drop_in_place(
|
||||
mem::transmute::<_, *mut OssifiedOpDir>(value.payload_offset())
|
||||
);
|
||||
ptr::drop_in_place(value.payload_offset::<OssifiedOpDir>());
|
||||
}
|
||||
ArenaHeaderTag::LiveLoadState | ArenaHeaderTag::InactiveLoadState => {
|
||||
ptr::drop_in_place(
|
||||
mem::transmute::<_, *mut LiveLoadState>(value.payload_offset())
|
||||
);
|
||||
ptr::drop_in_place(value.payload_offset::<LiveLoadState>());
|
||||
}
|
||||
ArenaHeaderTag::Dropped => {
|
||||
}
|
||||
ArenaHeaderTag::TcpListener => {
|
||||
ptr::drop_in_place(value.payload_offset() as *mut TcpListener);
|
||||
ptr::drop_in_place(value.payload_offset::<TcpListener>());
|
||||
}
|
||||
ArenaHeaderTag::F64 | ArenaHeaderTag::StandardOutputStream |
|
||||
ArenaHeaderTag::StandardErrorStream | ArenaHeaderTag::NullStream => {
|
||||
@@ -458,10 +449,10 @@ impl AllocSlab {
|
||||
self.header.size() as usize + mem::size_of::<AllocSlab>()
|
||||
}
|
||||
|
||||
fn payload_offset(&self) -> *const u8 {
|
||||
fn payload_offset<T>(&self) -> *mut T {
|
||||
let mut ptr = (self as *const AllocSlab) as usize;
|
||||
ptr += mem::size_of::<AllocSlab>();
|
||||
ptr as *const u8
|
||||
ptr as *mut T
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -237,11 +237,6 @@ impl Write for NamedTlsStream {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
#[derive(Debug)]
|
||||
pub struct NullStream {}
|
||||
*/
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct StandardOutputStream {}
|
||||
|
||||
@@ -375,65 +370,6 @@ macro_rules! arena_allocated_impl_for_stream {
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
pub mod testing {
|
||||
use super::PausedPrologStream;
|
||||
|
||||
impl PausedPrologStream {
|
||||
#[allow(dead_code)]
|
||||
pub fn write_test_input(&mut self, string: &str) {
|
||||
self.bytes.extend(string.as_bytes().iter().rev());
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
/*
|
||||
impl ArenaAllocated for PausedPrologStream {
|
||||
type PtrToAllocated = TypedArenaPtr<PausedPrologStream>;
|
||||
|
||||
#[inline]
|
||||
fn tag() -> ArenaHeaderTag {
|
||||
ArenaHeaderTag::PausedPrologStream
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn size(&self) -> usize {
|
||||
mem::size_of::<PausedPrologStream>()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn copy_to_arena(self, dst: *mut Self) -> Self::PtrToAllocated {
|
||||
unsafe {
|
||||
ptr::write(dst, self);
|
||||
TypedArenaPtr::new(dst as *mut Self)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct PausedPrologStream {
|
||||
bytes: Vec<u8>,
|
||||
paused_stream: Stream,
|
||||
}
|
||||
|
||||
impl PausedPrologStream {
|
||||
#[inline]
|
||||
pub fn new() -> Self {
|
||||
PausedPrologStream {
|
||||
bytes: vec![],
|
||||
paused_stream: Stream::Null(StreamOptions::default()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Read for PausedPrologStream {
|
||||
#[inline]
|
||||
fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
|
||||
self.paused_stream.read(buf)
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
arena_allocated_impl_for_stream!(CharReader<ByteStream>, ByteStream);
|
||||
arena_allocated_impl_for_stream!(CharReader<InputFileStream>, InputFileStream);
|
||||
arena_allocated_impl_for_stream!(OutputFileStream, OutputFileStream);
|
||||
@@ -593,21 +529,6 @@ impl Stream {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
fn unpause_stream(&mut self) {
|
||||
let stream_inst = match self {
|
||||
Stream::PausedProlog(paused) if paused.bytes.is_empty() => {
|
||||
mem::replace(&mut paused.paused_stream, Stream::Null(StreamOptions::default()))
|
||||
}
|
||||
_ => {
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
*self = stream_inst;
|
||||
}
|
||||
*/
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn add_lines_read(&mut self, incr_num_lines_read: usize) {
|
||||
match self {
|
||||
|
||||
Reference in New Issue
Block a user