summaryrefslogtreecommitdiff
path: root/libguile/gh_data.c
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>2005-01-06 18:56:34 +0000
committerMarius Vollmer <mvo@zagadka.de>2005-01-06 18:56:34 +0000
commitc8857a4db44ba4242ae05f57fe89ffd4e3971776 (patch)
tree3320a9e67ffbfd694c63a16fa87dc00fd8d35009 /libguile/gh_data.c
parentfea99690f2e31b08d4261d91509c6fed7d945125 (diff)
downloadguile-c8857a4db44ba4242ae05f57fe89ffd4e3971776.tar.gz
(scm_array_handle_release): New, changed all uses of
scm_t_array_handle to properly call it. (scm_vector_get_handle, scm_generalized_vector_get_handle): Renamed former to latter, changed all uses.
Diffstat (limited to 'libguile/gh_data.c')
-rw-r--r--libguile/gh_data.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libguile/gh_data.c b/libguile/gh_data.c
index 859327cd7..2d437dbb9 100644
--- a/libguile/gh_data.c
+++ b/libguile/gh_data.c
@@ -258,9 +258,11 @@ gh_scm2chars (SCM obj, char *m)
scm_list_1 (obj));
if (m == 0)
m = (char *) malloc (len);
+ if (m != NULL)
+ memcpy (m, elts, len);
+ scm_array_handle_release (&handle);
if (m == NULL)
return NULL;
- memcpy (m, elts, len);
break;
}
else
@@ -296,9 +298,11 @@ scm2whatever (SCM obj, void *m, size_t size)
if (m == 0)
m = malloc (len * sizeof (size));
- if (m == NULL)
- return NULL;
- memcpy (m, elts, len * size);
+ if (m != NULL)
+ memcpy (m, elts, len * size);
+
+ scm_array_handle_release (&handle);
+
return m;
}