зеркало из https://github.com/github/ruby.git
eval.c: rename "rb_frozen_class_p" to "rb_class_modify_check"
Just refactoring. Despite its name, the function does NOT return a boolean but raises an exception when the class given is frozen. I don't think the new name "rb_class_modify_check" is the best, but it follows the precedeint "rb_ary_modify_check", and is definitely better than "*_p". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
ceab460fca
Коммит
ffb09d8e87
2
class.c
2
class.c
|
@ -852,7 +852,7 @@ static int include_modules_at(const VALUE klass, VALUE c, VALUE module, int sear
|
|||
static void
|
||||
ensure_includable(VALUE klass, VALUE module)
|
||||
{
|
||||
rb_frozen_class_p(klass);
|
||||
rb_class_modify_check(klass);
|
||||
Check_Type(module, T_MODULE);
|
||||
if (!NIL_P(rb_refinement_module_get_refined_class(module))) {
|
||||
rb_raise(rb_eArgError, "refinement module is not allowed");
|
||||
|
|
2
eval.c
2
eval.c
|
@ -416,7 +416,7 @@ rb_mod_s_constants(int argc, VALUE *argv, VALUE mod)
|
|||
* \ingroup class
|
||||
*/
|
||||
void
|
||||
rb_frozen_class_p(VALUE klass)
|
||||
rb_class_modify_check(VALUE klass)
|
||||
{
|
||||
if (SPECIAL_CONST_P(klass)) {
|
||||
noclass:
|
||||
|
|
|
@ -38,6 +38,9 @@ DECLARE_DEPRECATED_FEATURE(2.2, rb_frame_pop);
|
|||
#define DECLARE_DEPRECATED_INTERNAL_FEATURE(func) \
|
||||
NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void))))
|
||||
|
||||
/* eval.c */
|
||||
NORETURN(ERRORFUNC(("internal function"), void rb_frozen_class_p(VALUE)));
|
||||
|
||||
/* error.c */
|
||||
DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error);
|
||||
DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error_with_enc);
|
||||
|
|
|
@ -203,7 +203,6 @@ VALUE rb_class_protected_instance_methods(int, const VALUE*, VALUE);
|
|||
VALUE rb_class_private_instance_methods(int, const VALUE*, VALUE);
|
||||
VALUE rb_obj_singleton_methods(int, const VALUE*, VALUE);
|
||||
void rb_define_method_id(VALUE, ID, VALUE (*)(ANYARGS), int);
|
||||
void rb_frozen_class_p(VALUE);
|
||||
void rb_undef(VALUE, ID);
|
||||
void rb_define_protected_method(VALUE, const char*, VALUE (*)(ANYARGS), int);
|
||||
void rb_define_private_method(VALUE, const char*, VALUE (*)(ANYARGS), int);
|
||||
|
|
|
@ -1254,6 +1254,7 @@ PRINTF_ARGS(VALUE rb_warning_string(const char *fmt, ...), 1, 2);
|
|||
/* eval.c */
|
||||
VALUE rb_refinement_module_get_refined_class(VALUE module);
|
||||
extern ID ruby_static_id_signo, ruby_static_id_status;
|
||||
void rb_class_modify_check(VALUE);
|
||||
#define id_signo ruby_static_id_signo
|
||||
#define id_status ruby_static_id_status
|
||||
|
||||
|
|
|
@ -2848,7 +2848,7 @@ set_const_visibility(VALUE mod, int argc, const VALUE *argv,
|
|||
rb_const_entry_t *ce;
|
||||
ID id;
|
||||
|
||||
rb_frozen_class_p(mod);
|
||||
rb_class_modify_check(mod);
|
||||
if (argc == 0) {
|
||||
rb_warning("%"PRIsVALUE" with no argument is just ignored",
|
||||
QUOTE_ID(rb_frame_callee()));
|
||||
|
@ -2898,7 +2898,7 @@ rb_deprecate_constant(VALUE mod, const char *name)
|
|||
ID id;
|
||||
long len = strlen(name);
|
||||
|
||||
rb_frozen_class_p(mod);
|
||||
rb_class_modify_check(mod);
|
||||
if (!(id = rb_check_id_cstr(name, len, NULL)) ||
|
||||
!(ce = rb_const_lookup(mod, id))) {
|
||||
rb_name_err_raise("constant %2$s::%1$s not defined",
|
||||
|
|
|
@ -539,7 +539,7 @@ rb_method_entry_make(VALUE klass, ID mid, VALUE defined_class, rb_method_visibil
|
|||
}
|
||||
}
|
||||
|
||||
rb_frozen_class_p(klass);
|
||||
rb_class_modify_check(klass);
|
||||
|
||||
if (FL_TEST(klass, RMODULE_IS_REFINEMENT)) {
|
||||
VALUE refined_class = rb_refinement_module_get_refined_class(klass);
|
||||
|
@ -985,7 +985,7 @@ remove_method(VALUE klass, ID mid)
|
|||
VALUE self = klass;
|
||||
|
||||
klass = RCLASS_ORIGIN(klass);
|
||||
rb_frozen_class_p(klass);
|
||||
rb_class_modify_check(klass);
|
||||
if (mid == object_id || mid == id__send__ || mid == idInitialize) {
|
||||
rb_warn("removing `%s' may cause serious problems", rb_id2name(mid));
|
||||
}
|
||||
|
@ -1198,7 +1198,7 @@ rb_undef(VALUE klass, ID id)
|
|||
if (NIL_P(klass)) {
|
||||
rb_raise(rb_eTypeError, "no class to undef method");
|
||||
}
|
||||
rb_frozen_class_p(klass);
|
||||
rb_class_modify_check(klass);
|
||||
if (id == object_id || id == id__send__ || id == idInitialize) {
|
||||
rb_warn("undefining `%s' may cause serious problems", rb_id2name(id));
|
||||
}
|
||||
|
@ -1555,7 +1555,7 @@ rb_alias(VALUE klass, ID alias_name, ID original_name)
|
|||
rb_raise(rb_eTypeError, "no class to make alias");
|
||||
}
|
||||
|
||||
rb_frozen_class_p(klass);
|
||||
rb_class_modify_check(klass);
|
||||
|
||||
again:
|
||||
orig_me = search_method(klass, original_name, &defined_class);
|
||||
|
|
Загрузка…
Ссылка в новой задаче