Hi. On Mon, 8 Feb 2021 at 22:24, Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > On Fri, Feb 5, 2021 at 5:42 AM Giuliano Procida <gprocida@xxxxxxxxxx> wrote: > > > > The pointer (iterator) scn can be made local to the loop and a more > > general while-loop is not needed. > > > > Signed-off-by: Giuliano Procida <gprocida@xxxxxxxxxx> > > --- > > libbtf.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/libbtf.c b/libbtf.c > > index ace8896..4ae7150 100644 > > --- a/libbtf.c > > +++ b/libbtf.c > > @@ -700,7 +700,6 @@ static int btf_elf__write(const char *filename, struct btf *btf) > > { > > GElf_Ehdr ehdr; > > Elf_Data *btf_data = NULL; > > - Elf_Scn *scn = NULL; > > Elf *elf = NULL; > > const void *raw_btf_data; > > uint32_t raw_btf_size; > > @@ -748,7 +747,7 @@ static int btf_elf__write(const char *filename, struct btf *btf) > > */ > > > > elf_getshdrstrndx(elf, &strndx); > > - while ((scn = elf_nextscn(elf, scn)) != NULL) { > > this is pretty "canonical" as far as libelf usage goes, I wouldn't > touch this code, but it's up to Arnaldo > Ack. In an intermediate version of the code, I got bitten when I used scn by mistake instead of another pointer. This wouldn't have compiled if scn had been scoped to the loop. Giuliano. > > > + for (Elf_Scn *scn = elf_nextscn(elf, NULL); scn; scn = elf_nextscn(elf, scn)) { > > GElf_Shdr shdr; > > if (!gelf_getshdr(scn, &shdr)) > > continue; > > -- > > 2.30.0.478.g8a0d178c01-goog > >