summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-28 01:32:15 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-28 01:32:15 +0000
commit1f2255604087e9a7d7efcb2df61b5ca0e2daa200 (patch)
tree6af1e6dfb53a9f62443335cce60a95938d1b88de
parent9d10f9ee8fa07c173ec5da712d6e6d803a2e558b (diff)
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
-rw-r--r--ChangeLog5
-rw-r--r--include/ruby/ruby.h13
-rw-r--r--internal.h10
-rw-r--r--win32/Makefile.sub1
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 <nobu@ruby-lang.org>
+
+ * internal.h (struct RClass): moved from ruby/ruby.h to hide the
+ internals.
+
Tue Jul 28 08:48:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* 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)