summaryrefslogtreecommitdiff
path: root/lib/delegate.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-12 16:58:43 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-12 16:58:43 +0000
commitf87aa95e94bbf006ad5f757712c4865b5e53a37d (patch)
tree9a9cfa0a6235c578d713891a55a8a9aeac8bb817 /lib/delegate.rb
parentaeaad8feab0424d499161c9edb6af6ba44e6f789 (diff)
* signal.c (sigexit): call rb_thread_signal_exit() instead of
rb_exit(). [ruby-dev:26347] * eval.c (rb_thread_signal_exit): a new function to exit on main thread. * eval.c (rb_thread_switch): exit status should be retrieved from ruby_errinfo. * eval.c (rb_f_exit): ensure exit(0) should call exit(EXIT_SUCCESS). * missing/mkdir.c: remove. [ruby-core:05177] * lib/delegate.rb (SimpleDelegator::__setobj__): need check for recursive delegation. [ruby-core:04940] * misc/ruby-mode.el (ruby-expr-beg): fix looking point drift. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/delegate.rb')
-rw-r--r--lib/delegate.rb2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/delegate.rb b/lib/delegate.rb
index deffcaf0f5..2a30bc94b1 100644
--- a/lib/delegate.rb
+++ b/lib/delegate.rb
@@ -73,6 +73,7 @@ class SimpleDelegator<Delegator
end
def __setobj__(obj)
+ raise ArgumentError, "cannot delegate to self" if self.equal?(obj)
@_sd_obj = obj
end
@@ -110,6 +111,7 @@ def DelegateClass(superclass)
@_dc_obj
end
def __setobj__(obj)
+ raise ArgumentError, "cannot delegate to self" if self.equal?(obj)
@_dc_obj = obj
end
def clone