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:
mame 2018-07-27 13:57:14 +00:00
parent ceab460fca
commit ffb09d8e87
7 changed files with 12 additions and 9 deletions

View File

@ -852,7 +852,7 @@ static int include_modules_at(const VALUE klass, VALUE c, VALUE module, int sear
static void static void
ensure_includable(VALUE klass, VALUE module) ensure_includable(VALUE klass, VALUE module)
{ {
rb_frozen_class_p(klass); rb_class_modify_check(klass);
Check_Type(module, T_MODULE); Check_Type(module, T_MODULE);
if (!NIL_P(rb_refinement_module_get_refined_class(module))) { if (!NIL_P(rb_refinement_module_get_refined_class(module))) {
rb_raise(rb_eArgError, "refinement module is not allowed"); rb_raise(rb_eArgError, "refinement module is not allowed");

2
eval.c
View File

@ -416,7 +416,7 @@ rb_mod_s_constants(int argc, VALUE *argv, VALUE mod)
* \ingroup class * \ingroup class
*/ */
void void
rb_frozen_class_p(VALUE klass) rb_class_modify_check(VALUE klass)
{ {
if (SPECIAL_CONST_P(klass)) { if (SPECIAL_CONST_P(klass)) {
noclass: noclass:

View File

@ -38,6 +38,9 @@ DECLARE_DEPRECATED_FEATURE(2.2, rb_frame_pop);
#define DECLARE_DEPRECATED_INTERNAL_FEATURE(func) \ #define DECLARE_DEPRECATED_INTERNAL_FEATURE(func) \
NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void)))) NORETURN(ERRORFUNC(("deprecated internal function"), DEPRECATED(void func(void))))
/* eval.c */
NORETURN(ERRORFUNC(("internal function"), void rb_frozen_class_p(VALUE)));
/* error.c */ /* error.c */
DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error); DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error);
DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error_with_enc); DECLARE_DEPRECATED_INTERNAL_FEATURE(rb_compile_error_with_enc);

View File

@ -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_class_private_instance_methods(int, const VALUE*, VALUE);
VALUE rb_obj_singleton_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_define_method_id(VALUE, ID, VALUE (*)(ANYARGS), int);
void rb_frozen_class_p(VALUE);
void rb_undef(VALUE, ID); void rb_undef(VALUE, ID);
void rb_define_protected_method(VALUE, const char*, VALUE (*)(ANYARGS), int); void rb_define_protected_method(VALUE, const char*, VALUE (*)(ANYARGS), int);
void rb_define_private_method(VALUE, const char*, VALUE (*)(ANYARGS), int); void rb_define_private_method(VALUE, const char*, VALUE (*)(ANYARGS), int);

View File

@ -1254,6 +1254,7 @@ PRINTF_ARGS(VALUE rb_warning_string(const char *fmt, ...), 1, 2);
/* eval.c */ /* eval.c */
VALUE rb_refinement_module_get_refined_class(VALUE module); VALUE rb_refinement_module_get_refined_class(VALUE module);
extern ID ruby_static_id_signo, ruby_static_id_status; 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_signo ruby_static_id_signo
#define id_status ruby_static_id_status #define id_status ruby_static_id_status

View File

@ -2848,7 +2848,7 @@ set_const_visibility(VALUE mod, int argc, const VALUE *argv,
rb_const_entry_t *ce; rb_const_entry_t *ce;
ID id; ID id;
rb_frozen_class_p(mod); rb_class_modify_check(mod);
if (argc == 0) { if (argc == 0) {
rb_warning("%"PRIsVALUE" with no argument is just ignored", rb_warning("%"PRIsVALUE" with no argument is just ignored",
QUOTE_ID(rb_frame_callee())); QUOTE_ID(rb_frame_callee()));
@ -2898,7 +2898,7 @@ rb_deprecate_constant(VALUE mod, const char *name)
ID id; ID id;
long len = strlen(name); long len = strlen(name);
rb_frozen_class_p(mod); rb_class_modify_check(mod);
if (!(id = rb_check_id_cstr(name, len, NULL)) || if (!(id = rb_check_id_cstr(name, len, NULL)) ||
!(ce = rb_const_lookup(mod, id))) { !(ce = rb_const_lookup(mod, id))) {
rb_name_err_raise("constant %2$s::%1$s not defined", rb_name_err_raise("constant %2$s::%1$s not defined",

View File

@ -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)) { if (FL_TEST(klass, RMODULE_IS_REFINEMENT)) {
VALUE refined_class = rb_refinement_module_get_refined_class(klass); VALUE refined_class = rb_refinement_module_get_refined_class(klass);
@ -985,7 +985,7 @@ remove_method(VALUE klass, ID mid)
VALUE self = klass; VALUE self = klass;
klass = RCLASS_ORIGIN(klass); klass = RCLASS_ORIGIN(klass);
rb_frozen_class_p(klass); rb_class_modify_check(klass);
if (mid == object_id || mid == id__send__ || mid == idInitialize) { if (mid == object_id || mid == id__send__ || mid == idInitialize) {
rb_warn("removing `%s' may cause serious problems", rb_id2name(mid)); 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)) { if (NIL_P(klass)) {
rb_raise(rb_eTypeError, "no class to undef method"); 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) { if (id == object_id || id == id__send__ || id == idInitialize) {
rb_warn("undefining `%s' may cause serious problems", rb_id2name(id)); 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_raise(rb_eTypeError, "no class to make alias");
} }
rb_frozen_class_p(klass); rb_class_modify_check(klass);
again: again:
orig_me = search_method(klass, original_name, &defined_class); orig_me = search_method(klass, original_name, &defined_class);