guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 02/02: Fix segfault introduced with R6RS port commit


From: Andy Wingo
Subject: [Guile-commits] 02/02: Fix segfault introduced with R6RS port commit
Date: Tue, 28 Feb 2017 11:03:47 -0500 (EST)

wingo pushed a commit to branch master
in repository guile.

commit 33514ffe22b8cd15ff7ba95bcee80a534b2bbc2a
Author: Andy Wingo <address@hidden>
Date:   Tue Feb 28 17:02:25 2017 +0100

    Fix segfault introduced with R6RS port commit
    
    * libguile/init.c (scm_i_init_guile): Move scm_register_r6rs_ports
      later, so that defining port types hsa the SCM trampoline subrs
      defined.
    * libguile/bytevectors.c (scm_bootstrap_bytevectors): Cosmetic changes.
---
 libguile/bytevectors.c | 11 ++++++-----
 libguile/init.c        |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c
index 58df018..7b4585d 100644
--- a/libguile/bytevectors.c
+++ b/libguile/bytevectors.c
@@ -2095,10 +2095,14 @@ scm_bootstrap_bytevectors (void)
      loaded.  */
   scm_null_bytevector = make_bytevector (0, SCM_ARRAY_ELEMENT_TYPE_VU8);
 
+
+  scm_endianness_big = sym_big = scm_from_latin1_symbol ("big");
+  scm_endianness_little = sym_little = scm_from_latin1_symbol ("little");
+
 #ifdef WORDS_BIGENDIAN
-  scm_i_native_endianness = scm_from_latin1_symbol ("big");
+  scm_i_native_endianness = sym_big;
 #else
-  scm_i_native_endianness = scm_from_latin1_symbol ("little");
+  scm_i_native_endianness = sym_little;
 #endif
 
   scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
@@ -2109,9 +2113,6 @@ scm_bootstrap_bytevectors (void)
   scm_i_register_vector_constructor
     (scm_i_array_element_types[SCM_ARRAY_ELEMENT_TYPE_VU8],
      scm_make_bytevector);
-
-  scm_endianness_big = sym_big = scm_from_latin1_symbol ("big");
-  scm_endianness_little = sym_little = scm_from_latin1_symbol ("little");
 }
 
 void
diff --git a/libguile/init.c b/libguile/init.c
index a8f690b..1a6f599 100644
--- a/libguile/init.c
+++ b/libguile/init.c
@@ -399,7 +399,6 @@ scm_i_init_guile (void *base)
   scm_bootstrap_programs ();
   scm_bootstrap_vm ();
   scm_register_atomic ();
-  scm_register_r6rs_ports ();
   scm_register_fdes_finalizers ();
   scm_register_foreign ();
   scm_register_foreign_object ();
@@ -431,6 +430,7 @@ scm_i_init_guile (void *base)
   scm_init_feature ();
   scm_init_backtrace ();
   scm_init_ports ();
+  scm_register_r6rs_ports ();     /* requires ports */
   scm_init_fports ();
   scm_init_strports ();
   scm_init_hash ();



reply via email to

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