guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 02/02: Remove scm_from_contiguous_typed_array


From: Daniel Llorens
Subject: [Guile-commits] 02/02: Remove scm_from_contiguous_typed_array
Date: Fri, 7 Feb 2020 09:28:08 -0500 (EST)

lloda pushed a commit to branch wip-vector-cleanup
in repository guile.

commit 660e656ea88a18b325a5570de0d2b2fe6c120acf
Author: Daniel Llorens <address@hidden>
AuthorDate: Fri Feb 7 10:53:59 2020 +0100

    Remove scm_from_contiguous_typed_array
    
    This function was undocumented and not used anywhere.
    
    libguile/arrays.h:
    libguile/arrays.c: As stated.
---
 doc/ref/api-data.texi |  6 ++----
 libguile/arrays.c     | 58 ---------------------------------------------------
 libguile/arrays.h     |  3 ---
 3 files changed, 2 insertions(+), 65 deletions(-)

diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index 5c49272..54586a1 100644
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -6459,8 +6459,6 @@ Return a pointer to the elements of @var{vec}.  This 
pointer can only be
 used to read the elements of @var{vec}.  When @var{vec} is not a vector,
 an error is signaled.
 
-For use with general arrays, see @code{scm_array_handle_elements}.
-
 The following example shows the typical way to use this function.  It
 creates a list of all elements of @var{vec} (in reverse order).
 
@@ -6473,14 +6471,13 @@ for (size_t i = 0; i < len; ++i)
   list = scm_cons (elt[i], list);
 @end example
 
+For use with general arrays, see @code{scm_array_handle_elements}.
 @end deftypefn
 
 @deftypefn {C Function} {SCM *} scm_vector_writable_elements (SCM vec, size_t 
*lenp)
 Like @code{scm_vector_elements} but the pointer can be used to modify
 the vector.
 
-For use with general arrays, see @code{scm_array_handle_writable_elements}.
-
 The following example shows the typical way to use this function.  It
 fills a vector with @code{#t} (but see @code{vector-fill!}).
 
@@ -6492,6 +6489,7 @@ for (size_t i = 0; i < len; ++i)
   elt[i] = SCM_BOOL_T;
 @end example
 
+For use with general arrays, see @code{scm_array_handle_writable_elements}.
 @end deftypefn
 
 @node Uniform Numeric Vectors
diff --git a/libguile/arrays.c b/libguile/arrays.c
index 26e2fab..95bc6e1 100644
--- a/libguile/arrays.c
+++ b/libguile/arrays.c
@@ -628,64 +628,6 @@ SCM_DEFINE (scm_make_typed_array, "make-typed-array", 2, 
0, 1,
 }
 #undef FUNC_NAME
 
-SCM
-scm_from_contiguous_typed_array (SCM type, SCM bounds, const void *bytes,
-                                 size_t byte_len)
-#define FUNC_NAME "scm_from_contiguous_typed_array"
-{
-  size_t k, rlen = 1;
-  scm_t_array_dim *s;
-  SCM ra;
-  scm_t_array_handle h;
-  void *elts;
-  size_t sz;
-
-  ra = scm_i_shap2ra (bounds);
-  SCM_SET_ARRAY_CONTIGUOUS_FLAG (ra);
-  s = SCM_I_ARRAY_DIMS (ra);
-  k = SCM_I_ARRAY_NDIM (ra);
-
-  while (k--)
-    {
-      s[k].inc = rlen;
-      SCM_ASSERT_RANGE (1, bounds, s[k].lbnd <= s[k].ubnd + 1);
-      rlen = (s[k].ubnd - s[k].lbnd + 1) * s[k].inc;
-    }
-  SCM_I_ARRAY_SET_V (ra, scm_make_generalized_vector (type, scm_from_size_t 
(rlen), SCM_UNDEFINED));
-
-
-  scm_array_get_handle (ra, &h);
-  elts = h.writable_elements;
-  sz = scm_array_handle_uniform_element_bit_size (&h);
-  scm_array_handle_release (&h);
-
-  if (sz >= 8 && ((sz % 8) == 0))
-    {
-      if (byte_len % (sz / 8))
-        SCM_MISC_ERROR ("byte length not a multiple of the unit size", 
SCM_EOL);
-      if (byte_len / (sz / 8) != rlen)
-        SCM_MISC_ERROR ("byte length and dimensions do not match", SCM_EOL);
-    }
-  else if (sz < 8)
-    {
-      /* Elements of sub-byte size (bitvectors) are addressed in 32-bit
-         units.  */
-      if (byte_len != ((rlen * sz + 31) / 32) * 4)
-        SCM_MISC_ERROR ("byte length and dimensions do not match", SCM_EOL);
-    }
-  else
-    /* an internal guile error, really */
-    SCM_MISC_ERROR ("uniform elements larger than 8 bits must fill whole 
bytes", SCM_EOL);
-
-  memcpy (elts, bytes, byte_len);
-
-  if (1 == SCM_I_ARRAY_NDIM (ra) && 0 == SCM_I_ARRAY_BASE (ra))
-    if (0 == s->lbnd)
-      return SCM_I_ARRAY_V (ra);
-  return ra;
-}
-#undef FUNC_NAME
-
 SCM_DEFINE (scm_make_array, "make-array", 1, 0, 1,
            (SCM fill, SCM bounds),
            "Create and return an array.")
diff --git a/libguile/arrays.h b/libguile/arrays.h
index dc8cf86..0d2f334 100644
--- a/libguile/arrays.h
+++ b/libguile/arrays.h
@@ -69,9 +69,6 @@ SCM_API SCM scm_array_to_list (SCM v);
 
 SCM_API SCM scm_make_array (SCM fill, SCM bounds);
 SCM_API SCM scm_make_typed_array (SCM type, SCM fill, SCM bounds);
-SCM_API SCM scm_from_contiguous_typed_array (SCM type, SCM bounds,
-                                             const void *bytes,
-                                             size_t byte_len);
 
 SCM_API SCM scm_shared_array_root (SCM ra);
 SCM_API SCM scm_shared_array_offset (SCM ra);



reply via email to

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