ruby-changes:12290
From: nobu <ko1@a...>
Date: Tue, 7 Jul 2009 16:54:44 +0900 (JST)
Subject: [ruby-changes:12290] Ruby:r23983 (trunk): * error.c (rb_typed_struct_is_kind_of): new function to see if the
nobu 2009-07-07 16:54:28 +0900 (Tue, 07 Jul 2009) New Revision: 23983 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23983 Log: * error.c (rb_typed_struct_is_kind_of): new function to see if the given typed struct. Modified files: trunk/ChangeLog trunk/error.c trunk/include/ruby/ruby.h Index: include/ruby/ruby.h =================================================================== --- include/ruby/ruby.h (revision 23982) +++ include/ruby/ruby.h (revision 23983) @@ -764,8 +764,10 @@ VALUE rb_data_object_alloc(VALUE,void*,RUBY_DATA_FUNC,RUBY_DATA_FUNC); VALUE rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *); +int rb_typed_struct_is_kind_of(VALUE, const rb_data_type_t *); void *rb_check_typed_struct(VALUE, const rb_data_type_t *); #define Check_TypedStruct(v,t) rb_check_typed_struct((VALUE)(v),t) +#define RUBY_TYPED_DEFAULT_FREE ((void (*)(void *))-1) #define Data_Wrap_Struct(klass,mark,free,sval)\ rb_data_object_alloc(klass,sval,(RUBY_DATA_FUNC)mark,(RUBY_DATA_FUNC)free) Index: ChangeLog =================================================================== --- ChangeLog (revision 23982) +++ ChangeLog (revision 23983) @@ -1,3 +1,8 @@ +Tue Jul 7 16:54:24 2009 Nobuyoshi Nakada <nobu@r...> + + * error.c (rb_typed_struct_is_kind_of): new function to see if the + given typed struct. + Tue Jul 7 13:44:49 2009 Nobuyoshi Nakada <nobu@r...> * error.c (rb_check_typed_struct): new function to check typed Index: error.c =================================================================== --- error.c (revision 23982) +++ error.c (revision 23983) @@ -316,6 +316,16 @@ } } +int +rb_typed_struct_is_kind_of(VALUE obj, const rb_data_type_t *data_type) +{ + if (SPECIAL_CONST_P(obj) || BUILTIN_TYPE(obj) != T_DATA || + !RTYPEDDATA_P(obj) || RTYPEDDATA_TYPE(obj) != data_type) { + return 0; + } + return 1; +} + void * rb_check_typed_struct(VALUE obj, const rb_data_type_t *data_type) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/