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

yamaken at freedesktop.org yamaken at freedesktop.org
Wed Jan 4 20:09:01 PST 2006


Author: yamaken
Date: 2006-01-04 20:08:56 -0800 (Wed, 04 Jan 2006)
New Revision: 2799

Modified:
   branches/r5rs/sigscheme/sigscheme.c
Log:
* sigscheme/sigscheme.c
  - (scm_s_use): Optimize


Modified: branches/r5rs/sigscheme/sigscheme.c
===================================================================
--- branches/r5rs/sigscheme/sigscheme.c	2006-01-05 03:50:18 UTC (rev 2798)
+++ branches/r5rs/sigscheme/sigscheme.c	2006-01-05 04:08:56 UTC (rev 2799)
@@ -36,6 +36,7 @@
 =======================================*/
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 
 /*=======================================
   Local Include
@@ -267,16 +268,19 @@
 {
     struct module_info *mod;
     ScmObj feature_str;
+    const char *c_feature_str;
     DECLARE_FUNCTION("use", syntax_fixed_1);
 
     ENSURE_SYMBOL(feature);
 
+    c_feature_str = SCM_SYMBOL_NAME(feature);
+
     for (mod = module_info_table; mod->name; mod++) {
-        if (EQ(feature, scm_intern(mod->name))) {
-            feature_str = scm_p_symbol2string(feature);
-            if (FALSEP(scm_p_providedp(feature_str))) {
+        if (strcmp(c_feature_str, mod->name) == 0) {
+            feature_str = MAKE_IMMUTABLE_STRING_COPYING(c_feature_str);
+            if (!scm_providedp(feature_str)) {
                 (*mod->initializer)();
-                scm_p_provide(feature_str);
+                scm_provide(feature_str);
             }
             return SCM_TRUE;
         }



More information about the uim-commit mailing list