From d5744aff3a164c358f92ef9dc2cda5c7a7612d97 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Mon, 14 Oct 2019 09:00:42 -0700 Subject: 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. --- lib/drb/drb.rb | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'lib') 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. -- cgit v1.2.3