summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-06-09 14:45:56 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-06-09 14:45:56 +0000
commit1fdbe0f437de59f87527818918b55d794a5fb92d (patch)
tree5debf417488a6637ce9fd12074e744fe24c73722 /vm.c
parent50a058b6beb55998b6d06b912bb8ffeb9131e6af (diff)
* gc.c (rb_objspace_call_finalizer): use rb_typeddata_is_kind_of() for
type check to get rid of a double free when main Thread has singleton class. [ruby-core:36741] [Bug #4828] * thread.c (rb_obj_is_mutex): add a new utility function. * vm.c (rb_obj_is_thread): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index bddb4dd8d4..57cb090922 100644
--- a/vm.c
+++ b/vm.c
@@ -1780,6 +1780,17 @@ const rb_data_type_t ruby_thread_data_type = {
},
};
+VALUE
+rb_obj_is_thread(VALUE obj)
+{
+ if (rb_typeddata_is_kind_of(obj, &thread_data_type)) {
+ return Qtrue;
+ }
+ else {
+ return Qfalse;
+ }
+}
+
static VALUE
thread_alloc(VALUE klass)
{