summaryrefslogtreecommitdiff
path: root/libguile
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2002-01-10 21:11:22 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2002-01-10 21:11:22 +0000
commit2493378052debba95dee60ac67a63df1707d40c5 (patch)
tree49e6eb3378f8a7181be1bbb0601e4e81503c73ee /libguile
parentf9450cdb14ae46e38b353c04ea549ede068e26f0 (diff)
downloadguile-2493378052debba95dee60ac67a63df1707d40c5.tar.gz
* eval.[ch] (scm_deval_args): Made static.
* srcprop.c (scm_source_property): Remove redundant SCM_IMP test. * strings.c (scm_c_string2str): Clarified comment. Replaced THINKME by FIXME for uniformness. Removed question about whether arguments need to be protected from garbage collection: Arguments must be protected as any other variable.
Diffstat (limited to 'libguile')
-rw-r--r--libguile/ChangeLog12
-rw-r--r--libguile/eval.c2
-rw-r--r--libguile/eval.h1
-rw-r--r--libguile/srcprop.c2
-rw-r--r--libguile/strings.c19
5 files changed, 26 insertions, 10 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 5e35c4127..27a8835cd 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,5 +1,17 @@
2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+ * eval.[ch] (scm_deval_args): Made static.
+
+ * srcprop.c (scm_source_property): Remove redundant SCM_IMP
+ test.
+
+ * strings.c (scm_c_string2str): Clarified comment. Replaced
+ THINKME by FIXME for uniformness. Removed question about whether
+ arguments need to be protected from garbage collection: Arguments
+ must be protected as any other variable.
+
+2002-01-10 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
* procs.h (SCM_CLOSURE_BODY): New Macro.
* debug.c (scm_procedure_name, scm_procedure_source), eval.c
diff --git a/libguile/eval.c b/libguile/eval.c
index c44ca2738..8ad27a869 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -1825,7 +1825,7 @@ SCM_DEFINE (scm_evaluator_traps, "evaluator-traps-interface", 0, 1, 0,
}
#undef FUNC_NAME
-SCM
+static SCM
scm_deval_args (SCM l, SCM env, SCM proc, SCM *lloc)
{
SCM *results = lloc, res;
diff --git a/libguile/eval.h b/libguile/eval.h
index 84705668d..27f3860db 100644
--- a/libguile/eval.h
+++ b/libguile/eval.h
@@ -184,7 +184,6 @@ SCM_API SCM scm_unmemocopy (SCM form, SCM env);
SCM_API SCM scm_eval_car (SCM pair, SCM env);
SCM_API SCM scm_eval_body (SCM code, SCM env);
SCM_API SCM scm_eval_args (SCM i, SCM env, SCM proc);
-SCM_API SCM scm_deval_args (SCM l, SCM env, SCM proc, SCM *lloc);
SCM_API SCM scm_m_quote (SCM xorig, SCM env);
SCM_API SCM scm_m_begin (SCM xorig, SCM env);
SCM_API SCM scm_m_if (SCM xorig, SCM env);
diff --git a/libguile/srcprop.c b/libguile/srcprop.c
index 651066135..48df4e6a6 100644
--- a/libguile/srcprop.c
+++ b/libguile/srcprop.c
@@ -222,7 +222,7 @@ SCM_DEFINE (scm_source_property, "source-property", 2, 0, 0,
SCM_WRONG_TYPE_ARG (1, obj);
#endif
p = scm_hashq_ref (scm_source_whash, obj, SCM_EOL);
- if (SCM_IMP (p) || !SRCPROPSP (p))
+ if (!SRCPROPSP (p))
goto plist;
if (SCM_EQ_P (scm_sym_breakpoint, key)) p = SRCPROPBRK (p);
else if (SCM_EQ_P (scm_sym_line, key)) p = SCM_MAKINUM (SRCPROPLINE (p));
diff --git a/libguile/strings.c b/libguile/strings.c
index dab7a18f8..3aa24958d 100644
--- a/libguile/strings.c
+++ b/libguile/strings.c
@@ -336,6 +336,7 @@ SCM_DEFINE (scm_string_append, "string-append", 0, 0, 1,
}
#undef FUNC_NAME
+
/* Converts the given Scheme string OBJ into a C string, containing a copy
of OBJ's content with a trailing null byte. If LENP is non-NULL, set
*LENP to the string's length.
@@ -347,8 +348,8 @@ SCM_DEFINE (scm_string_append, "string-append", 0, 0, 1,
Note that Scheme strings may contain arbitrary data, including null
characters. This means that null termination is not a reliable way to
determine the length of the returned value. However, the function always
- copies the complete contents of OBJ, and sets *LENP to the true length
- of the string (if LENP is non-null). */
+ copies the complete contents of OBJ, and sets *LENP to the length of the
+ scheme string (if LENP is non-null). */
char *
scm_c_string2str (SCM obj, char *str, size_t *lenp)
{
@@ -357,22 +358,26 @@ scm_c_string2str (SCM obj, char *str, size_t *lenp)
SCM_ASSERT (SCM_STRINGP (obj), obj, SCM_ARG1, "scm_c_string2str");
len = SCM_STRING_LENGTH (obj);
- /* THINKME: What malloc policy? */
- if (str == NULL)
- str = (char *) malloc ((len + 1) * sizeof (char));
if (str == NULL)
- return NULL;
+ {
+ /* FIXME: Should we use exported wrappers for malloc (and free), which
+ * allow windows DLLs to call the correct freeing function? */
+ str = (char *) malloc ((len + 1) * sizeof (char));
+ if (str == NULL)
+ return NULL;
+ }
memcpy (str, SCM_STRING_CHARS (obj), len);
- /* THINKME: Is this necessary for arguments? I do not think so... */
scm_remember_upto_here_1 (obj);
str[len] = '\0';
if (lenp != NULL)
*lenp = len;
+
return str;
}
+
void
scm_init_strings ()
{