(Fstring): Use SAFE_ALLOCA.
authorKim F. Storm <storm@cua.dk>
Mon, 21 Jun 2004 21:52:46 +0000 (21:52 +0000)
committerKim F. Storm <storm@cua.dk>
Mon, 21 Jun 2004 21:52:46 +0000 (21:52 +0000)
src/charset.c

index 57a12b2..8eeddd5 100644 (file)
@@ -1645,11 +1645,16 @@ usage: (string &rest CHARACTERS)  */)
      int n;
      Lisp_Object *args;
 {
-  int i;
-  unsigned char *buf = (unsigned char *) alloca (MAX_MULTIBYTE_LENGTH * n);
-  unsigned char *p = buf;
+  int i, bufsize;
+  unsigned char *buf, *p;
   int c;
   int multibyte = 0;
+  Lisp_Object ret;
+  USE_SAFE_ALLOCA;
+
+  bufsize = MAX_MULTIBYTE_LENGTH * n;
+  SAFE_ALLOCA (buf, unsigned char *, bufsize);
+  p = buf;
 
   for (i = 0; i < n; i++)
     {
@@ -1667,7 +1672,10 @@ usage: (string &rest CHARACTERS)  */)
        *p++ = c;
     }
 
-  return make_string_from_bytes (buf, n, p - buf);
+  ret = make_string_from_bytes (buf, n, p - buf);
+  SAFE_FREE (bufsize);
+
+  return ret;
 }
 
 #endif /* emacs */