Fix read-ahead bug.
Re-ahead 8 bytes rather than 3 to ensure large blocks import fine.
This commit is contained in:
parent
549647b6f2
commit
9603597da7
@ -398,7 +398,7 @@ fn execute_import(conf: Configuration) {
|
|||||||
Box::new(::std::io::stdin())
|
Box::new(::std::io::stdin())
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut first_bytes: Bytes = vec![0; 3];
|
let mut first_bytes: Bytes = vec![0; 8];
|
||||||
let mut first_read = 0;
|
let mut first_read = 0;
|
||||||
|
|
||||||
let format = match conf.args.flag_format {
|
let format = match conf.args.flag_format {
|
||||||
@ -438,13 +438,13 @@ fn execute_import(conf: Configuration) {
|
|||||||
match format {
|
match format {
|
||||||
DataFormat::Binary => {
|
DataFormat::Binary => {
|
||||||
loop {
|
loop {
|
||||||
let mut bytes: Bytes = if first_read > 0 {first_bytes.clone()} else {vec![0; 3]};
|
let mut bytes: Bytes = if first_read > 0 {first_bytes.clone()} else {vec![0; 8]};
|
||||||
let n = if first_read > 0 {first_read} else {instream.read(&mut(bytes[..])).unwrap_or_else(|_| die!("Error reading from the file/stream."))};
|
let n = if first_read > 0 {first_read} else {instream.read(&mut(bytes[..])).unwrap_or_else(|_| die!("Error reading from the file/stream."))};
|
||||||
if n == 0 { break; }
|
if n == 0 { break; }
|
||||||
first_read = 0;
|
first_read = 0;
|
||||||
let s = PayloadInfo::from(&(bytes[..])).unwrap_or_else(|e| die!("Invalid RLP in the file/stream: {:?}", e)).total();
|
let s = PayloadInfo::from(&(bytes[..])).unwrap_or_else(|e| die!("Invalid RLP in the file/stream: {:?}", e)).total();
|
||||||
bytes.resize(s, 0);
|
bytes.resize(s, 0);
|
||||||
instream.read_exact(&mut(bytes[3..])).unwrap_or_else(|_| die!("Error reading from the file/stream."));
|
instream.read_exact(&mut(bytes[8..])).unwrap_or_else(|_| die!("Error reading from the file/stream."));
|
||||||
do_import(bytes);
|
do_import(bytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user