From 1f2255604087e9a7d7efcb2df61b5ca0e2daa200 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 28 Jul 2015 01:32:15 +0000 Subject: [PATCH] internal.h: moved RClass * internal.h (struct RClass): moved from ruby/ruby.h to hide the internals. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ include/ruby/ruby.h | 13 ++++++------- internal.h | 10 ++++++++++ win32/Makefile.sub | 1 + 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 583ae10f0f..e8d04235cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jul 28 10:32:09 2015 Nobuyoshi Nakada + + * internal.h (struct RClass): moved from ruby/ruby.h to hide the + internals. + Tue Jul 28 08:48:29 2015 Nobuyoshi Nakada * configure.in (RUBY_TYPE_ATTRIBUTE): attribute declaration for diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index 8405f4c624..01b3c2efc6 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -38,6 +38,9 @@ extern "C" { #ifndef DEPRECATED_BY # define DEPRECATED_BY(n,x) DEPRECATED(x) #endif +#ifndef DEPRECATED_TYPE +# define DEPRECATED_TYPE(mesg, decl) decl +#endif #ifndef NOINLINE # define NOINLINE(x) x #endif @@ -821,15 +824,11 @@ struct RObject { RCLASS_IV_INDEX_TBL(rb_obj_class(o)) : \ ROBJECT(o)->as.heap.iv_index_tbl) -/** @internal */ -typedef struct rb_classext_struct rb_classext_t; - +#define RClass RClassDeprecated +DEPRECATED_TYPE(("RClass is internal use only"), struct RClass { struct RBasic basic; - VALUE super; - rb_classext_t *ptr; - struct st_table *m_tbl; -}; +}); #define RCLASS_SUPER(c) rb_class_get_superclass(c) #define RMODULE_IV_TBL(m) RCLASS_IV_TBL(m) #define RMODULE_CONST_TBL(m) RCLASS_CONST_TBL(m) diff --git a/internal.h b/internal.h index c2e5a5b757..58ff89763c 100644 --- a/internal.h +++ b/internal.h @@ -479,6 +479,16 @@ struct rb_classext_struct { rb_alloc_func_t allocator; }; +typedef struct rb_classext_struct rb_classext_t; + +#undef RClass +struct RClass { + struct RBasic basic; + VALUE super; + rb_classext_t *ptr; + struct st_table *m_tbl; +}; + void rb_class_subclass_add(VALUE super, VALUE klass); void rb_class_remove_from_super_subclasses(VALUE); diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 75a606549a..db489ecb8c 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -584,6 +584,7 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub !endif !if $(MSC_VER) >= 1300 #define DEPRECATED(x) __declspec(deprecated) x +#define DEPRECATED_TYPE(mesg, x) __declspec(deprecated mesg) x #define NOINLINE(x) __declspec(noinline) x !endif #define UNREACHABLE __assume(0)