mirror of
https://codeberg.org/demostf/parser.git
synced 2026-10-01 08:44:05 +02:00
remove some bounds checks
This commit is contained in:
parent
b328db85e9
commit
6ef2b1cea8
9 changed files with 102 additions and 93 deletions
|
|
@ -1,6 +1,6 @@
|
|||
use super::stringtable::read_var_int;
|
||||
use crate::demo::message::packetentities::PacketEntitiesMessage;
|
||||
use crate::demo::message::stringtable::{encode_var_int_fixed, log_base2};
|
||||
use crate::demo::message::stringtable::{encode_var_int_fixed};
|
||||
use crate::demo::packet::datatable::ClassId;
|
||||
use crate::demo::parser::{Encode, ParseBitSkip};
|
||||
use crate::demo::sendprop::SendProp;
|
||||
|
|
@ -53,8 +53,8 @@ impl Parse<'_> for TempEntitiesMessage {
|
|||
};
|
||||
|
||||
let class_id = if stream.read()? {
|
||||
let bits = log_base2(state.server_classes.len()) + 1;
|
||||
(stream.read_sized::<u16>(bits as usize)?.saturating_sub(1)).into()
|
||||
let bits = state.server_class_bits;
|
||||
(stream.read_sized::<u16>(bits)?.saturating_sub(1)).into()
|
||||
} else {
|
||||
let last = events.last().ok_or(ParseError::InvalidDemo(
|
||||
"temp entity update without previous",
|
||||
|
|
@ -118,9 +118,9 @@ impl Encode for TempEntitiesMessage {
|
|||
|
||||
if event.class_id != last_class_id {
|
||||
true.write(stream)?;
|
||||
let bits = log_base2(state.server_classes.len()) + 1;
|
||||
let bits = state.server_class_bits;
|
||||
let id: u16 = event.class_id.into();
|
||||
(id + 1).write_sized(stream, bits as usize)?;
|
||||
(id + 1).write_sized(stream, bits)?;
|
||||
} else {
|
||||
false.write(stream)?;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue