+2002-01-27 Bruno Haible <bruno@clisp.org>
+
+ * x-lisp.c (extract_lisp): Free memory allocated in toplevel_object.
+ * x-elisp.c (string_of_object): Use memcpy.
+ (extract_elisp): Free memory allocated in toplevel_object.
+ * x-librep.c (string_of_object): Use memcpy.
+ (extract_librep): Free memory allocated in toplevel_object.
+
2002-01-27 Bruno Haible <bruno@clisp.org>
* x-c.c (ALERT_CHAR): New macro.
}
}
-/* Convert a t_string token to a char*. */
+/* Convert a t_symbol/t_string token to a char*. */
static char *
string_of_object (op)
const struct object *op;
{
char *str;
- const char *p;
- char *q;
int n;
if (!(op->type == t_symbol || op->type == t_string))
abort ();
n = op->token->charcount;
str = (char *) xmalloc (n + 1);
- q = str;
- for (p = op->token->chars; n > 0; n--)
- *q++ = *p++;
- *q = '\0';
+ memcpy (str, op->token->chars, n);
+ str[n] = '\0';
return str;
}
if (toplevel_object.type == t_eof)
break;
+
+ free_object (&toplevel_object);
}
while (!feof (fp));
}
}
-/* Convert a t_string token to a char*. */
+/* Convert a t_symbol/t_string token to a char*. */
static char *
string_of_object (op)
const struct object *op;
{
char *str;
- const char *p;
- char *q;
int n;
if (!(op->type == t_symbol || op->type == t_string))
abort ();
n = op->token->charcount;
str = (char *) xmalloc (n + 1);
- q = str;
- for (p = op->token->chars; n > 0; n--)
- *q++ = *p++;
- *q = '\0';
+ memcpy (str, op->token->chars, n);
+ str[n] = '\0';
return str;
}
if (toplevel_object.type == t_eof)
break;
+
+ free_object (&toplevel_object);
}
while (!feof (fp));
}
}
-/* Convert a t_string token to a char*. */
+/* Convert a t_symbol/t_string token to a char*. */
static char *
string_of_object (op)
const struct object *op;
if (toplevel_object.type == t_eof)
break;
+
+ free_object (&toplevel_object);
}
while (!feof (fp));