Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc84234d authored by Martin Geisler's avatar Martin Geisler
Browse files

pdl: Skip unnecessary computations in get_size

We might end up with adjustments again later as we parse packets with
more complex fields, but for now, this seems like a nice
simplification.

Test: atest pdl_tests
Change-Id: I67e37c2de9c45db510c8e4013cee0c51dcf1f4bb
parent 6470489a
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -164,11 +164,6 @@ fn generate_packet_decl(
        panic!("packet {id} does not end on a byte boundary, size: {packet_size_bits} bits",);
    }
    let packet_size_bytes = syn::Index::from(packet_size_bits / 8);
    let get_size_adjustment = (packet_size_bytes.index > 0).then(|| {
        Some(quote! {
            let ret = ret + #packet_size_bytes;
        })
    });

    let conforms = if packet_size_bytes.index == 0 {
        quote! { true }
@@ -196,9 +191,7 @@ fn generate_packet_decl(
            }

            fn get_size(&self) -> usize {
                let ret = 0;
                #get_size_adjustment
                ret
                #packet_size_bytes
            }
        }
    });
+1 −3
Original line number Diff line number Diff line
@@ -76,9 +76,7 @@ impl FooData {
        self.get_size()
    }
    fn get_size(&self) -> usize {
        let ret = 0;
        let ret = ret + 7;
        ret
        7
    }
}

+1 −3
Original line number Diff line number Diff line
@@ -76,9 +76,7 @@ impl FooData {
        self.get_size()
    }
    fn get_size(&self) -> usize {
        let ret = 0;
        let ret = ret + 7;
        ret
        7
    }
}

+1 −2
Original line number Diff line number Diff line
@@ -21,8 +21,7 @@ impl FooData {
        self.get_size()
    }
    fn get_size(&self) -> usize {
        let ret = 0;
        ret
        0
    }
}

+1 −3
Original line number Diff line number Diff line
@@ -60,9 +60,7 @@ impl FooData {
        self.get_size()
    }
    fn get_size(&self) -> usize {
        let ret = 0;
        let ret = ret + 6;
        ret
        6
    }
}

Loading