SZAVAI Gyula <[EMAIL PROTECTED]> writes:
>
> (let ((a (make-shared-array #() (lambda x #f) 0 2)))
>  (array-contents a))
> ==> #f

I suppose an empty shared array ought to be considered contiguous.

> --- orig/libguile/unif.c        2006-11-30 10:25:50.101433600 +0100
> +++ mod/libguile/unif.c 2006-11-30 13:03:16.244320000 +0100
> @@ -900,6 +900,7 @@
>        {
>          SCM_I_ARRAY_V (ra) = make_typed_vector (scm_array_type (ra), 0);
>          scm_array_handle_release (&old_handle);
> +         SCM_SET_ARRAY_CONTIGUOUS_FLAG (ra);
>          return ra;

Is that meant to be confined to the SCM_I_ARRAY_V case (per below)?
One of the lurking array experts will have to say ...

--- unif.c.~1.192.2.6.~	2006-12-13 09:38:49.000000000 +1100
+++ unif.c	2006-12-14 09:09:33.000000000 +1100
@@ -901,7 +901,10 @@
 	  if (1 == SCM_I_ARRAY_NDIM (ra))
 	    ra = make_typed_vector (scm_array_type (ra), 0);
 	  else
+            {
 	    SCM_I_ARRAY_V (ra) = make_typed_vector (scm_array_type (ra), 0);
+            SCM_SET_ARRAY_CONTIGUOUS_FLAG (ra);
+            }
 	  scm_array_handle_release (&old_handle);
 	  return ra;
 	}
_______________________________________________
Bug-guile mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-guile

Reply via email to