* eval.[ch] (scm_deval_args): Made static.
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Thu, 10 Jan 2002 21:11:22 +0000 (21:11 +0000)
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Thu, 10 Jan 2002 21:11:22 +0000 (21:11 +0000)
* 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.

libguile/ChangeLog
libguile/eval.c
libguile/eval.h
libguile/srcprop.c
libguile/strings.c

index 5e35c41..27a8835 100644 (file)
@@ -1,3 +1,15 @@
+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.
index c44ca27..8ad27a8 100644 (file)
@@ -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;
index 8470566..27f3860 100644 (file)
@@ -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);
index 6510661..48df4e6 100644 (file)
@@ -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));
index dab7a18..3aa2495 100644 (file)
@@ -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 ()
 {