summaryrefslogtreecommitdiff
path: root/lib/drb
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-10-14 09:00:42 -0700
committerJeremy Evans <code@jeremyevans.net>2019-10-16 12:51:13 -0700
commitd5744aff3a164c358f92ef9dc2cda5c7a7612d97 (patch)
tree1e8742a0dc5a9bc7113a8d854a1061dabd15b7e2 /lib/drb
parent567e312d1f56c27ecb4fa20deac4311f05ee5507 (diff)
Fix DRbServer#any_to_s
My previous fix in d0ed935d5bf8c3fce9800742a36e44fb7f63dda4 was not correct, as pointed out by cremno on GitHub. This simplifies things by just using Kernel#to_s. Also switch to bind_call(obj) instead of bind(obj).call for better performance.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2554
Diffstat (limited to 'lib/drb')
-rw-r--r--lib/drb/drb.rb10
1 files changed, 2 insertions, 8 deletions
diff --git a/lib/drb/drb.rb b/lib/drb/drb.rb
index 9b4d675096..5c7f66ac16 100644
--- a/lib/drb/drb.rb
+++ b/lib/drb/drb.rb
@@ -1606,15 +1606,9 @@ module DRb
# Coerce an object to a string, providing our own representation if
# to_s is not defined for the object.
def any_to_s(obj)
- obj.to_s + ":#{obj.class}"
+ "#{obj}:#{obj.class}"
rescue
- case obj
- when Object
- klass = obj.class
- else
- klass = Kernel.instance_method(:class).bind(obj).call
- end
- sprintf("#<%s:0x%dx>", klass, obj.__id__)
+ Kernel.instance_method(:to_s).bind_call(obj)
end
# Check that a method is callable via dRuby.