summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2014-02-08 22:11:36 +0100
committerAndy Wingo <wingo@pobox.com>2014-02-08 22:11:36 +0100
commita0ef1252af3204e9d86087c5752f48790575d372 (patch)
tree6b3d4f1573426aeff1df5d2830c88f8f3a8971a4
parente6658f527e2decf4b353f14b36b71c6009ebe3d6 (diff)
downloadguile-a0ef1252af3204e9d86087c5752f48790575d372.tar.gz
Add "vector" member to scm_t_array_handle
* libguile/array-handle.h (scm_t_array_handle): Add "vector" member. * libguile/array-handle.c (scm_array_get_handle): Initialize the vector member.
-rw-r--r--libguile/array-handle.c1
-rw-r--r--libguile/array-handle.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/libguile/array-handle.c b/libguile/array-handle.c
index 10cd375d4..daa1fcbc7 100644
--- a/libguile/array-handle.c
+++ b/libguile/array-handle.c
@@ -75,6 +75,7 @@ scm_array_get_handle (SCM array, scm_t_array_handle *h)
h->writable_elements = NULL;
h->vref = impl->vref;
h->vset = impl->vset;
+ h->vector = SCM_I_ARRAYP (array) ? SCM_I_ARRAY_V (array) : array;
impl->get_handle (array, h);
}
diff --git a/libguile/array-handle.h b/libguile/array-handle.h
index e777d4de0..abe617ff5 100644
--- a/libguile/array-handle.h
+++ b/libguile/array-handle.h
@@ -106,6 +106,9 @@ typedef struct scm_t_array_handle {
scm_t_array_element_type element_type;
const void *elements;
void *writable_elements;
+
+ /* The backing store for the array, and its accessors. */
+ SCM vector;
scm_t_array_ref vref;
scm_t_array_set vset;
} scm_t_array_handle;