summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-06-18 03:05:11 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-06-18 03:05:11 +0000
commit19f386674eb5cfbf9c8fd6041114829f37888d17 (patch)
tree766bda2001fc604141fbe7c8b51417d6c0e8fc2f /include
parent3b59f6c56278b1314f5b01a192ed03966aa3d0db (diff)
* include/ruby/backward/classext.h: for evil gems. fixed #4803
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r--include/ruby/backward/classext.h18
-rw-r--r--include/ruby/intern.h1
-rw-r--r--include/ruby/ruby.h6
3 files changed, 20 insertions, 5 deletions
diff --git a/include/ruby/backward/classext.h b/include/ruby/backward/classext.h
new file mode 100644
index 0000000000..615e6f6858
--- /dev/null
+++ b/include/ruby/backward/classext.h
@@ -0,0 +1,18 @@
+#if defined __GNUC__
+#warning use of RClass internals is deprecated
+#elif defined _MSC_VER || defined __BORLANDC__
+#pragma message("warning: use of RClass internals is deprecated")
+#endif
+
+#ifndef RUBY_BACKWARD_CLASSEXT_H
+#define RUBY_BACKWARD_CLASSEXT_H 1
+
+typedef struct rb_deprecated_classext_struct {
+ VALUE super;
+} rb_deprecated_classext_t;
+
+#undef RCLASS_SUPER(c)
+#define RCLASS_EXT(c) ((rb_deprecated_classext_t *)RCLASS(c)->ptr)
+#define RCLASS_SUPER(c) (RCLASS_EXT(c)->super)
+
+#endif /* RUBY_BACKWARD_CLASSEXT_H */
diff --git a/include/ruby/intern.h b/include/ruby/intern.h
index bc3c4491cd..582fa8801d 100644
--- a/include/ruby/intern.h
+++ b/include/ruby/intern.h
@@ -519,6 +519,7 @@ VALUE rb_obj_class(VALUE);
VALUE rb_class_real(VALUE);
VALUE rb_class_inherited_p(VALUE, VALUE);
VALUE rb_class_superclass(VALUE);
+VALUE rb_class_get_superclass(VALUE);
VALUE rb_convert_type(VALUE,int,const char*,const char*);
VALUE rb_check_convert_type(VALUE,int,const char*,const char*);
VALUE rb_check_to_integer(VALUE, const char *);
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 38bfe3f56c..340bea102a 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -617,11 +617,7 @@ struct RClass {
struct st_table *m_tbl;
struct st_table *iv_index_tbl;
};
-#define RCLASS_IV_TBL(c) (RCLASS(c)->ptr->iv_tbl)
-#define RCLASS_CONST_TBL(c) (RCLASS(c)->ptr->const_tbl)
-#define RCLASS_M_TBL(c) (RCLASS(c)->m_tbl)
-#define RCLASS_SUPER(c) (RCLASS(c)->ptr->super)
-#define RCLASS_IV_INDEX_TBL(c) (RCLASS(c)->iv_index_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)
#define RMODULE_M_TBL(m) RCLASS_M_TBL(m)