groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 03/04: src/roff/troff/input.cpp: Unpessimize.


From: G. Branden Robinson
Subject: [groff] 03/04: src/roff/troff/input.cpp: Unpessimize.
Date: Sat, 14 Sep 2019 11:35:32 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit 9f3cc8e76c37ec41540563b312ff5edfd275b022
Author: G. Branden Robinson <address@hidden>
Date:   Fri Sep 13 19:21:48 2019 +1000

    src/roff/troff/input.cpp: Unpessimize.
    
    While a smart compiler knows to lift invariants outside of loops,
    programmers should, too.  Stop setting a bad example.
    
    (I was reading Chu and Sebor on the C string library and was overwhelmed
    by shame.)
---
 ChangeLog                | 4 ++++
 src/roff/troff/input.cpp | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index a129f1c..5fd5c13 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-09-13  G. Branden Robinson <address@hidden>
+
+       * src/roff/troff/input.cpp: Lift invariant out of loop.
+
 2019-09-11  G. Branden Robinson <address@hidden>
 
        * src/preproc/refer/refer.1.man: Add mention of man and mm
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 38cf1a3..188a4b7 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -4738,7 +4738,8 @@ void do_string_case_transform(case_xform_mode mode)
   }
   string_iterator iter1(*m);
   macro *mac = new macro;
-  for (int l = 0; l < m->macro::length(); l++) {
+  int len = m->macro::length();
+  for (int l = 0; l < len; l++) {
     int nc, c = iter1.get(0);
     if (c == PUSH_GROFF_MODE
        || c == PUSH_COMP_MODE



reply via email to

[Prev in Thread] Current Thread [Next in Thread]