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

Reply via email to