core: Remove make_number.
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 23 Dec 2016 15:22:19 +0000 (16:22 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 23 Dec 2016 15:22:19 +0000 (16:22 +0100)
* mes.c (MAKE_NUMBER): New macro.
  (tmp_num_, tmp_num_2): New function.
  (make_number): Remove.  Update callers.

lib.c
math.c
mes.c
posix.c
reader.c
string.c
type.c

diff --git a/lib.c b/lib.c
index 6c47045b71b894a897f0b75b134175f3ccd9bab9..7bc77144a096fffa9c7074ce60ae575ce051b7d6 100644 (file)
--- a/lib.c
+++ b/lib.c
@@ -40,7 +40,7 @@ length (SCM x)
       n++;
       x = cdr (x);
     }
-  return make_number (n);
+  return MAKE_NUMBER (n);
 }
 
 SCM
diff --git a/math.c b/math.c
index e1fbf00690e4a35e7f1bf45ee4254d0c36afc8ba..8b7ebb35796784dc329937a6e9c80a2062a60e82 100644 (file)
--- a/math.c
+++ b/math.c
@@ -76,7 +76,7 @@ minus (SCM x) ///((name . "-") (arity . n))
       n -= VALUE (car (x));
       x = cdr (x);
     }
-  return make_number (n);
+  return MAKE_NUMBER (n);
 }
 
 SCM
@@ -89,7 +89,7 @@ plus (SCM x) ///((name . "+") (arity . n))
       n += VALUE (car (x));
       x = cdr (x);
     }
-  return make_number (n);
+  return MAKE_NUMBER (n);
 }
 
 SCM
@@ -107,7 +107,7 @@ divide (SCM x) ///((name . "/") (arity . n))
       n /= VALUE (car (x));
       x = cdr (x);
     }
-  return make_number (n);
+  return MAKE_NUMBER (n);
 }
 
 SCM
@@ -115,7 +115,7 @@ modulo (SCM a, SCM b)
 {
   assert (TYPE (a) == NUMBER);
   assert (TYPE (b) == NUMBER);
-  return make_number (VALUE (a) % VALUE (b));
+  return MAKE_NUMBER (VALUE (a) % VALUE (b));
 }
 
 SCM
@@ -128,7 +128,7 @@ multiply (SCM x) ///((name . "*") (arity . n))
       n *= VALUE (car (x));
       x = cdr (x);
     }
-  return make_number (n);
+  return MAKE_NUMBER (n);
 }
 
 SCM
@@ -141,7 +141,7 @@ logior (SCM x) ///((arity . n))
       n |= VALUE (car (x));
       x = cdr (x);
     }
-  return make_number (n);
+  return MAKE_NUMBER (n);
 }
 
 SCM
@@ -151,5 +151,5 @@ ash (SCM n, SCM count)
   assert (TYPE (count) == NUMBER);
   int cn = VALUE (n);
   int ccount = VALUE (count);
-  return make_number ((ccount < 0) ? cn >> -ccount : cn << ccount);
+  return MAKE_NUMBER ((ccount < 0) ? cn >> -ccount : cn << ccount);
 }
diff --git a/mes.c b/mes.c
index 8101648629d70df0f45f70ab79f1571f0768d745..5c553126244faed81f95366bc49e8cdc69c0713b 100644 (file)
--- a/mes.c
+++ b/mes.c
@@ -181,6 +181,8 @@ SCM r3 = 0; // param 3
 #define CDADAR(x) CAR (CDR (CAR (CDR (x))))
 #define CADR(x) CAR (CDR (x))
 
+#define MAKE_NUMBER(n) make_cell (tmp_num_ (NUMBER), 0, tmp_num2_ (n))
+
 SCM display_ (FILE* f, SCM x);
 SCM vm_call (function0_t f, SCM p1, SCM p2, SCM a);
 
@@ -684,11 +686,17 @@ make_char (int x)
 }
 
 SCM
-make_number (int x)
+tmp_num_ (int x)
+{
+  g_cells[tmp_num].value = x;
+  return tmp_num;
+}
+
+SCM
+tmp_num2_ (int x)
 {
-  g_cells[tmp_num].value = NUMBER;
   g_cells[tmp_num2].value = x;
-  return make_cell (tmp_num, tmp_num2, tmp_num2);
+  return tmp_num2;
 }
 
 SCM
@@ -760,7 +768,7 @@ SCM
 vector_length (SCM x)
 {
   assert (TYPE (x) == VECTOR);
-  return make_number (LENGTH (x));
+  return MAKE_NUMBER (LENGTH (x));
 }
 
 SCM
@@ -771,7 +779,7 @@ vector_ref (SCM x, SCM i)
   SCM e = VECTOR (x) + VALUE (i);
   if (TYPE (e) == REF) e = g_cells[e].ref;
   if (TYPE (e) == CHAR) e = make_char (VALUE (e));
-  if (TYPE (e) == NUMBER) e = make_number (VALUE (e));
+  if (TYPE (e) == NUMBER) e = MAKE_NUMBER (VALUE (e));
   return e;
 }
 
@@ -828,13 +836,13 @@ peekchar ()
 SCM
 peek_byte ()
 {
-  return make_number (peekchar ());
+  return MAKE_NUMBER (peekchar ());
 }
 
 SCM
 read_byte ()
 {
-  return make_number (getchar ());
+  return MAKE_NUMBER (getchar ());
 }
 
 SCM
@@ -868,7 +876,7 @@ SCM
 char_to_integer (SCM x)
 {
   assert (TYPE (x) == CHAR);
-  return make_number (VALUE (x));
+  return MAKE_NUMBER (VALUE (x));
 }
 
 SCM
diff --git a/posix.c b/posix.c
index 843e9ba0a0bd06037ed1565332d75eccaf0a857b..e0d6631178897051e7ab650e619af3569c3b8bc7 100644 (file)
--- a/posix.c
+++ b/posix.c
@@ -48,13 +48,13 @@ force_output (SCM p) ///((arity . n))
 SCM
 open_input_file (SCM file_name)
 {
-  return make_number (open (string_to_cstring (file_name), O_RDONLY));
+  return MAKE_NUMBER (open (string_to_cstring (file_name), O_RDONLY));
 }
 
 SCM
 current_input_port ()
 {
-  return make_number (fileno (g_stdin));
+  return MAKE_NUMBER (fileno (g_stdin));
 }
 
 SCM
index a585d91676ed56504ff52c3cc1c27c8429c39030..3970c32d29f796aa8c396d0d585fc8bb344fa816 100644 (file)
--- a/reader.c
+++ b/reader.c
@@ -103,7 +103,7 @@ lookup_ (SCM s, SCM a)
       n += VALUE (car (p)) - '0';
       p = cdr (p);
     }
-    if (p == cell_nil) return make_number (n * sign);
+    if (p == cell_nil) return MAKE_NUMBER (n * sign);
   }
 
   SCM x = lookup_symbol_ (s);
index 57550b24765d1727caeba398f96475b36c001737..61b27da455d2741105698f14d875dfa8c5b4c12a 100644 (file)
--- a/string.c
+++ b/string.c
@@ -48,7 +48,7 @@ SCM
 string_length (SCM x)
 {
   assert (TYPE (x) == STRING);
-  return make_number (VALUE (length (STRING (x))));
+  return MAKE_NUMBER (VALUE (length (STRING (x))));
 }
 
 SCM
diff --git a/type.c b/type.c
index d3889e4beb1133da69f6cf6b3a1d8c425da0ee3c..21ed9b17633db92ac4c49fdcb371c79a2173886c 100644 (file)
--- a/type.c
+++ b/type.c
@@ -113,9 +113,8 @@ boolean_p (SCM x)
 }
 #endif
 
-SCM make_number (int);
 SCM
 mes_type_of (SCM x)
 {
-  return make_number (TYPE (x));
+  return MAKE_NUMBER (TYPE (x));
 }