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
*));