diff options
author | Jean Boussier <[email protected]> | 2024-02-12 12:03:36 +0100 |
---|---|---|
committer | Jean Boussier <[email protected]> | 2024-02-12 18:31:48 +0100 |
commit | de1a586ecc2ee7f465f0c0a69291054136a3a819 () | |
tree | d6825acfea6f796b5f5dbb2746fe7fcb1c07d580 /internal/object.h | |
parent | c04782c2cb56c512e1d1b34630cb942da3aeb366 (diff) |
proc.c: get rid of `CLONESETUP`
[Bug #20253] All the way down to Ruby 1.9, `Proc`, `Method`, `UnboundMethod` and `Binding` always had their own specific clone and dup routine. This caused various discrepancies with how other objects behave on `dup` and `clone. [Bug #20250], [Bug #20253]. This commit get rid of `CLONESETUP` and use the the same codepath as all other types, so ensure consistency. NB: It's still not accepting the `freeze` keyword argument on `clone`. Co-Authored-By: Étienne Barrié <[email protected]>
-rw-r--r-- | internal/object.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -16,6 +16,8 @@ VALUE rb_class_search_ancestor(VALUE klass, VALUE super); NORETURN(void rb_undefined_alloc(VALUE klass)); double rb_num_to_dbl(VALUE val); VALUE rb_obj_dig(int argc, VALUE *argv, VALUE self, VALUE notfound); VALUE rb_immutable_obj_clone(int, VALUE *, VALUE); VALUE rb_check_convert_type_with_id(VALUE,int,const char*,ID); int rb_bool_expected(VALUE, const char *, int raise); |