guile-devel
[Top][All Lists]
Advanced

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

Re: Array bugs


From: Kevin Ryde
Subject: Re: Array bugs
Date: Mon, 05 Mar 2007 10:37:38 +1100
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

address@hidden (Ludovic Courtès) writes:
>
>   1. I don't understand how `scm_shap2ra ()' is supposed to behave when
>      LBND > UBND since it doesn't check it.

Dunno, except that in general "(10 9)" makes an empty array these
days, but say "(10 8)" is an error.

>      Should it instead inverse the bounds order?  Or keep the bounds
>      as is and set INC = -1?

Pretty sure it shouldn't do either of those things.

> --- 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;

I had doubts about this.  Below is what I thought at the time, but now
I completely forget why.  Marius may be the expert on this.

--- 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;
        }

reply via email to

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