Author: yamakenz
Date: Fri Aug 24 06:30:42 2007
New Revision: 4881

Modified:
   trunk/doc/COMPATIBILITY
   trunk/uim/uim-scm.c
   trunk/uim/uim-scm.h

Log:
* uim/uim-scm.h
  - (uim_scm_null_term_array2list, uim_scm_list2null_term_array): Removed
  - (uim_scm_list2array): New function
* uim/uim-scm.c
  - (uim_scm_null_term_array2list,
    uim_scm_null_term_array2list_internal,
    uim_scm_list2null_term_array,
    uim_scm_list2null_term_array_internal): Removed
  - (struct list2array_args): Add member 'len'
  - (uim_scm_list2array): New function
  - (uim_scm_list2array_internal): New static function
* doc/COMPATIBILITY
  - Update


Modified: trunk/doc/COMPATIBILITY
==============================================================================
--- trunk/doc/COMPATIBILITY     (original)
+++ trunk/doc/COMPATIBILITY     Fri Aug 24 06:30:42 2007
@@ -113,8 +113,7 @@
 Modifier: YamaKen
 Related: uim-scm API reorganization in uim 1.5.0
          uim_scm_array2list()
-         uim_scm_null_term_array2list()
-         uim_scm_list2null_term_array()
+         uim_scm_list2array()
 URL:
 Changes:
   (changed) uim_scm_c_bool()
@@ -431,7 +430,7 @@
 Affects: uim developers, IM developers
 Updates: C API, libuim ABI
 Version: 1.5.0
-Revision: ac4333, ac4334, ac4339, ac4347, ac4351-ac4353, ac4355, ac4444, 
ac4446, ac4751, ac4761, ac4764, ac4788, ac4808, ac4812, ac4813, ac4815, ac4817, 
ac4819, ac4821, ac4830, ac4870, ac4871, ac4873, ac4875, ac4878
+Revision: ac4333, ac4334, ac4339, ac4347, ac4351-ac4353, ac4355, ac4444, 
ac4446, ac4751, ac4761, ac4764, ac4788, ac4808, ac4812, ac4813, ac4815, ac4817, 
ac4819, ac4821, ac4830, ac4870, ac4871, ac4873, ac4875, ac4878, ac4881
 Date: 2007-01-09 -
 Modifier: YamaKen
 Related: uim-scm API truth predicates reorganization in uim 1.5.0
@@ -457,8 +456,7 @@
       (new) uim_scm_nullify_c_ptr()
       (new) uim_scm_eof()
       (new) uim_scm_array2list()
-      (new) uim_scm_null_term_array2list()
-      (new) uim_scm_list2null_term_array()
+      (new) uim_scm_list2term_array()
       (new) uim_scm_c_char()
       (new) uim_scm_make_char()
       (new) uim_scm_charp()

Modified: trunk/uim/uim-scm.c
==============================================================================
--- trunk/uim/uim-scm.c (original)
+++ trunk/uim/uim-scm.c Fri Aug 24 06:30:42 2007
@@ -104,12 +104,12 @@
   uim_lisp (*conv)(void *);
 };
 static void *uim_scm_array2list_internal(struct array2list_args *args);
-static void *uim_scm_null_term_array2list_internal(struct array2list_args 
*args);
 struct list2array_args {
   uim_lisp lst;
+  size_t *len;
   void *(*conv)(uim_lisp);
 };
-static void *uim_scm_list2null_term_array_internal(struct list2array_args 
*args);
+static void *uim_scm_list2array_internal(struct list2array_args *args);
 struct array2vector_args {
   void **ary;
   size_t len;
@@ -726,32 +726,9 @@
                                (ScmObj (*)(void *))args->conv);
 }
 
-/* Pass through uim_lisp if (conv == NULL). Terminator is NULL if
- * conv, and uim_scm_eof() if !conv.*/
-uim_lisp
-uim_scm_null_term_array2list(void **ary, uim_lisp (*conv)(void *))
-{
-  struct array2list_args args;
-
-  assert(uim_scm_gc_any_contextp());
-  assert(conv || !conv);
-
-  args.ary = ary;
-  args.conv = conv;
-
-  return 
(uim_lisp)uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_scm_null_term_array2list_internal,
 &args);
-}
-
-static void *
-uim_scm_null_term_array2list_internal(struct array2list_args *args)
-{
-  return (void *)scm_null_term_array2list(args->ary,
-                                         (ScmObj (*)(void *))args->conv);
-}
-
 /* Only accepts proper list. */
 void **
-uim_scm_list2null_term_array(uim_lisp lst, void *(*conv)(uim_lisp))
+uim_scm_list2array(uim_lisp lst, size_t *len, void *(*conv)(uim_lisp))
 {
   struct list2array_args args;
 
@@ -760,16 +737,17 @@
   assert(conv || !conv);
 
   args.lst = lst;
+  args.len = len;
   args.conv = conv;
 
-  return (void 
**)uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_scm_list2null_term_array_internal,
 &args);
+  return (void 
**)uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_scm_list2array_internal,
 &args);
 }
   
 static void *
-uim_scm_list2null_term_array_internal(struct list2array_args *args)
+uim_scm_list2array_internal(struct list2array_args *args)
 {
-  return (void *)scm_list2null_term_array((ScmObj)args->lst,
-                                         (void *(*)(ScmObj))args->conv);
+  return (void *)scm_list2array((ScmObj)args->lst, args->len,
+                               (void *(*)(ScmObj))args->conv);
 }
 
 /* Pass through uim_lisp if (conv == NULL). */

Modified: trunk/uim/uim-scm.h
==============================================================================
--- trunk/uim/uim-scm.h (original)
+++ trunk/uim/uim-scm.h Fri Aug 24 06:30:42 2007
@@ -185,8 +185,7 @@
 
 /* C array <-> Scheme list converters */
 uim_lisp uim_scm_array2list(void **ary, size_t len, uim_lisp (*conv)(void *));
-uim_lisp uim_scm_null_term_array2list(void **ary, uim_lisp (*conv)(void *));
-void **uim_scm_list2null_term_array(uim_lisp lst, void *(*conv)(uim_lisp));
+void **uim_scm_list2array(uim_lisp lst, size_t *len, void *(*conv)(uim_lisp));
 
 /* C array <-> Scheme vector converters */
 uim_lisp uim_scm_array2vector(void **ary, size_t len, uim_lisp (*conv)(void 
*));

Reply via email to