guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 01/02: Micro-optimize update-port-position.


From: Andy Wingo
Subject: [Guile-commits] 01/02: Micro-optimize update-port-position.
Date: Thu, 9 Mar 2017 11:27:54 -0500 (EST)

wingo pushed a commit to branch master
in repository guile.

commit f71c2c12609abfac9af7d38ea99f89a1f51b6992
Author: Andy Wingo <address@hidden>
Date:   Thu Mar 9 15:53:47 2017 +0100

    Micro-optimize update-port-position.
    
    * libguile/ports.c (update_port_position): Only fetch line if we need to
      increment it.
---
 libguile/ports.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libguile/ports.c b/libguile/ports.c
index 1be4a37..2a25cd5 100644
--- a/libguile/ports.c
+++ b/libguile/ports.c
@@ -1678,7 +1678,6 @@ scm_c_read (SCM port, void *buffer, size_t size)
 static inline void
 update_port_position (SCM position, scm_t_wchar c)
 {
-  long line = scm_to_long (scm_port_position_line (position));
   int column = scm_to_int (scm_port_position_column (position));
 
   switch (c)
@@ -1691,8 +1690,11 @@ update_port_position (SCM position, scm_t_wchar c)
         scm_port_position_set_column (position, scm_from_int (column - 1));
       break;
     case '\n':
-      scm_port_position_set_line (position, scm_from_long (line + 1));
-      scm_port_position_set_column (position, SCM_INUM0);
+      {
+        long line = scm_to_long (scm_port_position_line (position));
+        scm_port_position_set_line (position, scm_from_long (line + 1));
+        scm_port_position_set_column (position, SCM_INUM0);
+      }
       break;
     case '\r':
       scm_port_position_set_column (position, SCM_INUM0);



reply via email to

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