diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-05-22 16:37:22 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-05-22 16:37:22 +0000 |
commit | c3584231bad01fd85827814f640590de7a9637ad (patch) | |
tree | af2795092963cbc0019eeea417ffae1ba24637c2 | |
parent | 717302e2c4de9b86bf53fe65173500a33586001c (diff) |
* object.c (rb_obj_clone): defer copying freezing state after
calling initialize_copy(). [ruby-dev:20276]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/debug.rb | 2 | ||||
-rw-r--r-- | lib/irb/completion.rb | 2 | ||||
-rw-r--r-- | lib/shell/command-processor.rb | 4 | ||||
-rw-r--r-- | object.c | 3 |
5 files changed, 11 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Fri May 23 01:26:26 2003 Yukihiro Matsumoto <[email protected]> + + * object.c (rb_obj_clone): defer copying freezing state after + calling initialize_copy(). [ruby-dev:20276] + Thu May 22 17:12:10 2003 Yukihiro Matsumoto <[email protected]> * gc.c (run_final): use rb_thread_critical instead of DEFER_INTS. diff --git a/lib/debug.rb b/lib/debug.rb index ab32c9d023..1b558ab90f 100644 --- a/lib/debug.rb +++ b/lib/debug.rb @@ -231,7 +231,7 @@ class Context stdout.print "Should be Class/Module: ", input, "\n" else len = 0 - for v in obj.instance_methods.sort + for v in obj.instance_methods(false).sort len += v.size + 1 if len > 70 len = v.size + 1 diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb index 67a0e5c7fb..c207cf09ef 100644 --- a/lib/irb/completion.rb +++ b/lib/irb/completion.rb @@ -140,7 +140,7 @@ module IRB ObjectSpace.each_object(Module){|m| next if m.name != "IRB::Context" and /^(IRB|SLex|RubyLex|RubyToken)/ =~ m.name - candidates.concat m.instance_methods + candidates.concat m.instance_methods(false) } candidates.sort! candidates.uniq! diff --git a/lib/shell/command-processor.rb b/lib/shell/command-processor.rb index 0c65d3be36..07879567fd 100644 --- a/lib/shell/command-processor.rb +++ b/lib/shell/command-processor.rb @@ -31,7 +31,7 @@ class Shell install_builtin_commands # define CommandProccessor#methods to Shell#methods and Filter#methods - for m in CommandProcessor.instance_methods - NoDelegateMethods + for m in CommandProcessor.instance_methods(false) - NoDelegateMethods add_delegate_command_to_shell(m) end @@ -558,7 +558,7 @@ class Shell # method related FileTest def_builtin_commands(FileTest, - FileTest.singleton_methods.collect{|m| [m, ["FILENAME"]]}) + FileTest.singleton_methods(false).collect{|m| [m, ["FILENAME"]]}) # method related ftools normal_delegation_ftools_methods = [ @@ -142,8 +142,9 @@ rb_obj_clone(obj) } clone = rb_obj_alloc(rb_obj_class(obj)); RBASIC(clone)->klass = rb_singleton_class_clone(obj); - RBASIC(clone)->flags = RBASIC(obj)->flags | FL_TEST(clone, FL_TAINT); + RBASIC(clone)->flags = (RBASIC(obj)->flags | FL_TEST(clone, FL_TAINT)) & ~FL_FREEZE; init_copy(clone, obj); + RBASIC(clone)->flags |= RBASIC(obj)->flags & FL_FREEZE; return clone; } |