> Hi, I don't fully understand what this patch is intended to do. Why is it 
> necessary?

It
- fixes a bug where errors parsing the file do not terminate the processing
- fixes a small memory leak
- simplifies the code

Otherwise extending this code for DWARF-5 in a later patch would be difficult 
how to code it with these existing issues.


> commit 0da448c337d481f1c50af212246ceb213a7d80cc (HEAD -> master) Author: Jan 
> Kratochvil ***@***.***> Date: Mon Aug 17 21:46:47 2020 +0200 debugedit: Fix 
> handling in caller for errors in called read_dwarf2_line. diff --git 
> a/tools/debugedit.c b/tools/debugedit.c index 8e85847d1..ff72759ca 100644 --- 
> a/tools/debugedit.c +++ b/tools/debugedit.c @@ -1155,7 +1155,7 @@ 
> get_line_table (DSO *dso, size_t off, struct line_table **table) if 
> (lines->table[i].old_idx == off) { *table = &lines->table[i]; - return false; 
> + return true; }

This is really a mess, couldn't you learn how to do a patch review?

> This breaks the contract of the function, which says:

I forgot to update the function comment, fixed.

> The intention is to let the caller know whether the line_table has already 
> been handled or not earlier. It makes sure read_dwarf2_line doesn't try 
> parsing the same line table multiple times even if it is referenced multiple 
> times by different CUs.

This
 - is no longer possible as for DWARF-5 one needs to parse the same line table 
in multiple phases
 - therefore this check is moved later into:
```
  if (phase <= table->phase_done)
    return true;
  table->phase_done = phase;
```

> Returning true in this case might make read_dwarf2_line parse and replace the 
> same line table multiple times.

I do not think it matters and this gets fixed in later patch.

> Again this changes the documented contract of the function which says:

I have updated the function comment.

> Why do you need to call read_dwarf2_line in all phases here?

Because DWARF-5 .debug_line rewrite requires that. I have moved this change to 
the DWARF-5 later patch.

> This seems to fix a minor memory leak. Looks OK.

This would not work without the other fixes.


-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/1332#issuecomment-731388373
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to