guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.7-151-g1b787


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.7-151-g1b787ef
Date: Thu, 07 Mar 2013 06:52:10 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=1b787ef9ec3a08f12d7b46403f4d508e583499a2

The branch, stable-2.0 has been updated
       via  1b787ef9ec3a08f12d7b46403f4d508e583499a2 (commit)
       via  e20cec744fad8299afd9bbb6ac49505b15437618 (commit)
      from  6db7ee7b3ae8a7dbd6dc194921024287bed40a0a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1b787ef9ec3a08f12d7b46403f4d508e583499a2
Author: Andy Wingo <address@hidden>
Date:   Tue Mar 5 18:22:11 2013 +0100

    structs with tail arrays are not simple
    
    * libguile/struct.h (SCM_VTABLE_FLAG_SIMPLE, SCM_VTABLE_FLAG_SIMPLE_RW):
    * libguile/struct.c (set_vtable_layout_flags): Vtable whose layouts
      include a tail array are not simple.  Fixes bug 12808.

commit e20cec744fad8299afd9bbb6ac49505b15437618
Author: Andy Wingo <address@hidden>
Date:   Tue Mar 5 14:42:32 2013 +0100

    fix compilation under mingw
    
    * libguile/load.c (is_absolute_file_name, search_path): Fix compilation
      under mingw.

-----------------------------------------------------------------------

Summary of changes:
 libguile/load.c   |   16 +++++++++-------
 libguile/struct.c |    9 ++++-----
 libguile/struct.h |    6 +++---
 3 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/libguile/load.c b/libguile/load.c
index 8d50b21..da75a5a 100644
--- a/libguile/load.c
+++ b/libguile/load.c
@@ -478,23 +478,25 @@ is_drive_letter (SCM c)
 }
 
 static int
-is_absolute_file_name (const char *filename_chars, size_t filename_len)
+is_absolute_file_name (SCM filename)
 {
+  size_t filename_len = scm_c_string_length (filename);
+
   if (filename_len >= 1
-      && is_file_name_separator (SCM_MAKE_CHAR (filename_chars[0]))
+      && is_file_name_separator (scm_c_string_ref (filename, 0))
 #ifdef __MINGW32__
       /* On Windows, one initial separator indicates a drive-relative
          path.  Two separators indicate a Universal Naming Convention
          (UNC) path.  UNC paths are always absolute.  */
       && filename_len >= 2
-      && is_file_name_separator (SCM_MAKE_CHAR (filename_chars[1]))
+      && is_file_name_separator (scm_c_string_ref (filename, 1))
 #endif
       )
     return 1;
   if (filename_len >= 3
-      && is_drive_letter (SCM_MAKE_CHAR (filename_chars[0]))
-      && filename_chars[1] == ':'
-      && is_file_name_separator (SCM_MAKE_CHAR (filename_chars[2])))
+      && is_drive_letter (scm_c_string_ref (filename, 0))
+      && scm_is_eq (scm_c_string_ref (filename, 1), SCM_MAKE_CHAR (':'))
+      && is_file_name_separator (scm_c_string_ref (filename, 2)))
     return 1;
   return 0;
 }
@@ -529,7 +531,7 @@ search_path (SCM path, SCM filename, SCM extensions, SCM 
require_exts,
   scm_dynwind_free (filename_chars);
 
   /* If FILENAME is absolute and is still valid, return it unchanged.  */
-  if (is_absolute_file_name (filename_chars, filename_len))
+  if (is_absolute_file_name (filename))
     {
       if ((scm_is_false (require_exts) ||
            scm_c_string_has_an_ext (filename_chars, filename_len,
diff --git a/libguile/struct.c b/libguile/struct.c
index db1687e..3906a42 100644
--- a/libguile/struct.c
+++ b/libguile/struct.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,1997,1998,1999,2000,2001, 2003, 2004, 2006, 2007, 2008, 
2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2001, 2003, 2004, 2006, 2007, 2008, 
2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -153,8 +153,9 @@ SCM_DEFINE (scm_make_struct_layout, "make-struct-layout", 
1, 0, 0,
 #undef FUNC_NAME
 
 
-/* Check whether VTABLE instances have a simple layout (i.e., either only "pr"
-   or only "pw" fields) and update its flags accordingly.  */
+/* Check whether VTABLE instances have a simple layout (i.e., either
+   only "pr" or only "pw" fields and no tail array) and update its flags
+   accordingly.  */
 static void
 set_vtable_layout_flags (SCM vtable)
 {
@@ -180,13 +181,11 @@ set_vtable_layout_flags (SCM vtable)
        switch (c_layout[field + 1])
          {
          case 'w':
-         case 'W':
            if (field == 0)
              flags |= SCM_VTABLE_FLAG_SIMPLE_RW;
            break;
 
          case 'r':
-         case 'R':
            flags &= ~SCM_VTABLE_FLAG_SIMPLE_RW;
            break;
 
diff --git a/libguile/struct.h b/libguile/struct.h
index 643fd9d..0b31cf5 100644
--- a/libguile/struct.h
+++ b/libguile/struct.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STRUCT_H
 #define SCM_STRUCT_H
 
-/* Copyright (C) 1995,1997,1999,2000,2001, 2006, 2007, 2008, 2009, 2010, 2011, 
2012 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1997,1999,2000,2001, 2006, 2007, 2008, 2009, 2010, 2011, 
2012, 2013 Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -108,8 +108,8 @@
 #define SCM_VTABLE_FLAG_APPLICABLE (1L << 3) /* instances of this vtable are 
applicable? */
 #define SCM_VTABLE_FLAG_SETTER_VTABLE (1L << 4) /* instances of this vtable 
are applicable-with-setter vtables? */
 #define SCM_VTABLE_FLAG_SETTER (1L << 5) /* instances of this vtable are 
applicable-with-setters? */
-#define SCM_VTABLE_FLAG_SIMPLE (1L << 6) /* instances of this vtable have only 
"p" fields */
-#define SCM_VTABLE_FLAG_SIMPLE_RW (1L << 7) /* instances of this vtable have 
only "pw" fields */
+#define SCM_VTABLE_FLAG_SIMPLE (1L << 6) /* instances of this vtable have only 
"p" fields and no tail array*/
+#define SCM_VTABLE_FLAG_SIMPLE_RW (1L << 7) /* instances of this vtable have 
only "pw" fields and no tail array */
 #define SCM_VTABLE_FLAG_RESERVED_0 (1L << 8)
 #define SCM_VTABLE_FLAG_RESERVED_1 (1L << 9)
 #define SCM_VTABLE_FLAG_RESERVED_2 (1L << 10)


hooks/post-receive
-- 
GNU Guile



reply via email to

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