Author: yamakenz
Date: Fri Aug 10 16:52:35 2007
New Revision: 4817
Modified:
trunk/doc/COMPATIBILITY
trunk/uim/uim-scm.c
trunk/uim/uim-scm.h
Log:
* uim/uim-scm.h
- (uim_scm_nullify_c_ptr): New function decl
* uim/uim-scm.c
- (uim_scm_nullify_c_ptr): New function
* doc/COMPATIBILITY
- Update
Modified: trunk/doc/COMPATIBILITY
==============================================================================
--- trunk/doc/COMPATIBILITY (original)
+++ trunk/doc/COMPATIBILITY Fri Aug 10 16:52:35 2007
@@ -364,7 +364,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
+Revision: ac4333, ac4334, ac4339, ac4347, ac4351-ac4353, ac4355, ac4444,
ac4446, ac4751, ac4761, ac4764, ac4788, ac4808, ac4812, ac4813, ac4815, ac4817
Date: 2007-01-09 -
Modifier: YamaKen
Related: SigScheme introduction to uim
@@ -385,6 +385,7 @@
(new) uim_scm_error()
(new) uim_scm_error_obj()
(new) uim_scm_set_fatal_error_hook()
+ (new) uim_scm_nullify_c_ptr()
(new) MAKE_BOOL()
(new) MAKE_INT()
(new) MAKE_STR()
Modified: trunk/uim/uim-scm.c
==============================================================================
--- trunk/uim/uim-scm.c (original)
+++ trunk/uim/uim-scm.c Fri Aug 10 16:52:35 2007
@@ -324,6 +324,19 @@
return SCM_C_POINTER_VALUE((ScmObj)ptr);
}
+void
+uim_scm_nullify_c_ptr(uim_lisp ptr)
+{
+ assert(uim_scm_gc_any_contextp());
+ assert(uim_scm_gc_protectedp(ptr));
+
+ if (!SCM_C_POINTERP((ScmObj)ptr))
+ uim_scm_error_obj("uim_scm_nullify_c_ptr: C pointer required but got ",
+ ptr);
+
+ SCM_C_POINTER_SET_VALUE((ScmObj)ptr, NULL);
+}
+
uim_lisp
uim_scm_make_ptr(void *ptr)
{
Modified: trunk/uim/uim-scm.h
==============================================================================
--- trunk/uim/uim-scm.h (original)
+++ trunk/uim/uim-scm.h Fri Aug 10 16:52:35 2007
@@ -148,6 +148,7 @@
void *
uim_scm_c_ptr(uim_lisp ptr);
+void uim_scm_nullify_c_ptr(uim_lisp ptr);
uim_lisp
uim_scm_make_ptr(void *ptr);