From b766cc4e70f18ab1b3be5aef35d2af8817d23714 Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 20 Dec 2013 07:01:52 +0000 Subject: [PATCH] * include/ruby/ruby.h: add a comment for WB interfaces. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ include/ruby/ruby.h | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index dfaadc5843..d8e4ab7ac1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Dec 20 16:01:35 2013 Koichi Sasada + + * include/ruby/ruby.h: add a comment for WB interfaces. + Fri Dec 20 16:00:52 2013 Nobuyoshi Nakada * configure.in: DLDFLAGS is defined in --with-opt-dir handler, so diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index 03b9bd0d1a..366ce96983 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -1199,6 +1199,17 @@ void rb_gc_writebarrier_unprotect_promoted(VALUE obj); #define OBJ_WB_UNPROTECT(x) rb_obj_wb_unprotect(x, __FILE__, __LINE__) #endif +/* Write barrier (WB) interfaces: + * - OBJ_WRITE(a, slot, b): WB for new reference from `a' to `b'. + * Write `b' into `*slot'. `slot' is a pointer in `a'. + * - OBJ_WRITTEN(a, oldv, b): WB for new reference from `a' to `b'. + * This doesn't write any values, but only a WB declaration. + * `oldv' is replaced value with `b' (not used in current Ruby). + * + * NOTE: The following core interfaces can be changed in the future. + * Please catch up if you want to insert WB into C-extensions + * correctly. + */ #define OBJ_WRITE(a, slot, b) rb_obj_write((VALUE)(a), (VALUE *)(slot), (VALUE)(b), __FILE__, __LINE__) #define OBJ_WRITTEN(a, oldv, b) rb_obj_written((VALUE)(a), (VALUE)(oldv), (VALUE)(b), __FILE__, __LINE__)