Under some circumstances it's possible to get a divider 0 which crashes the script. Traceback (most recent call last): File "linux/scripts/bloat-o-meter", line 98, in <module> print_result("Function", "tTdDbBrR", 2) File "linux/scripts/bloat-o-meter", line 87, in print_result (otot, ntot, (ntot - otot)*100.0/otot)) ZeroDivisionError: float division by zero Hide this by checking the divider first.
Unified · Split
| @@ -83,8 +83,11 @@ def print_result(symboltype, symbolformat, argc): · 82 unmodified lines | |||
| 83 | for d, n in delta: | 83 | for d, n in delta: |
| 84 | if d: print("%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)) | 84 | if d: print("%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)) |
| 85 | 85 | ||
| 86 | print("Total: Before=%d, After=%d, chg %+.2f%%" % \ | 86 | if otot: |
| 87 | (otot, ntot, (ntot - otot)*100.0/otot)) | 87 | percent = (ntot - otot) * 100.0 / otot |
| 88 | else: | ||
| 89 | percent = 0 | ||
| 90 | print("Total: Before=%d, After=%d, chg %+.2f%%" % (otot, ntot, percent)) | ||
| 88 | 91 | ||
| 89 | if sys.argv[1] == "-c": | 92 | if sys.argv[1] == "-c": |
| 90 | print_result("Function", "tT", 3) | 93 | print_result("Function", "tT", 3) |