[uim-commit] r1421 - branches/r5rs/sigscheme

yamaken at freedesktop.org yamaken at freedesktop.org
Sun Sep 4 22:38:59 PDT 2005


Author: yamaken
Date: 2005-09-04 22:38:56 -0700 (Sun, 04 Sep 2005)
New Revision: 1421

Modified:
   branches/r5rs/sigscheme/read.c
Log:
* sigscheme/read.c
  - Add a FIXME comment about stack use


Modified: branches/r5rs/sigscheme/read.c
===================================================================
--- branches/r5rs/sigscheme/read.c	2005-09-05 03:57:13 UTC (rev 1420)
+++ branches/r5rs/sigscheme/read.c	2005-09-05 05:38:56 UTC (rev 1421)
@@ -32,6 +32,22 @@
  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  *  SUCH DAMAGE.
 ===========================================================================*/
+/*
+ * FIXME: Large fixed-size buffer on stack without limit checking
+ *
+ * Fix some functions contained in this file since:
+ *
+ * - danger
+ * - some embedded platform cannot allocate such large stack (approx. 20KB)
+ * - inefficient from the viewpoint of memory locality (cache, page, power
+ *   consumption etc)
+ *
+ * Search "FIXME" on this file to locate the codes. I wonder other Scheme
+ * implementations may have sophisticated code. Please consider porting them to
+ * save development cost, since this part is not the primary value of
+ * SigScheme.  -- YamaKen 2005-09-05
+ */
+
 /*=======================================
   System Include
 =======================================*/
@@ -321,7 +337,7 @@
 
 static ScmObj read_string(ScmObj port)
 {
-    char  stringbuf[1024];
+    char  stringbuf[1024]; /* FIXME! */
     int   stringlen = 0;
     int   c = 0;
 
@@ -419,7 +435,7 @@
 
 static char *read_word(ScmObj port)
 {
-    char  stringbuf[1024];
+    char  stringbuf[1024];  /* FIXME! */
     int   stringlen = 0;
     int   c = 0;
     char *dst = NULL;
@@ -450,7 +466,7 @@
 
 static char *read_char_sequence(ScmObj port)
 {
-    char  stringbuf[1024];
+    char  stringbuf[1024];  /* FIXME! */
     int   stringlen = 0;
     int   c = 0;
     char *dst = NULL;



More information about the uim-commit mailing list