1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

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
This commit is contained in:
nobu 2015-07-28 01:32:15 +00:00
parent 9d10f9ee8f
commit 1f22556040
4 changed files with 22 additions and 7 deletions

View file

@ -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

View file

@ -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)

View file

@ -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);

View file

@ -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)