Skip to content

Commit 2c34c01

Browse files
committed
Call exc.cause only once in append_causes
1 parent 1b622a7 commit 2c34c01

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/main/ruby/truffleruby/core/truffle/exception_operations.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,24 +193,25 @@ def self.backtrace?(exc)
193193
end
194194

195195
def self.append_causes(str, err, causes, reverse, highlight)
196-
if !Primitive.nil?(err.cause) && Exception === err.cause && !causes.has_key?(err.cause)
197-
causes[err.cause] = true
196+
cause = err.cause
197+
if !Primitive.nil?(cause) && Exception === cause && !causes.has_key?(cause)
198+
causes[cause] = true
198199
if reverse
199-
append_causes(str, err.cause, causes, reverse, highlight)
200-
backtrace_message = backtrace_message(highlight, reverse, err.cause.backtrace, err.cause)
200+
append_causes(str, cause, causes, reverse, highlight)
201+
backtrace_message = backtrace_message(highlight, reverse, cause.backtrace, cause)
201202
if backtrace_message.empty?
202203
str << message_and_class(err, highlight)
203204
else
204205
str << backtrace_message
205206
end
206207
else
207-
backtrace_message = backtrace_message(highlight, reverse, err.cause.backtrace, err.cause)
208+
backtrace_message = backtrace_message(highlight, reverse, cause.backtrace, cause)
208209
if backtrace_message.empty?
209210
str << message_and_class(err, highlight)
210211
else
211212
str << backtrace_message
212213
end
213-
append_causes(str, err.cause, causes, reverse, highlight)
214+
append_causes(str, cause, causes, reverse, highlight)
214215
end
215216
end
216217
end

0 commit comments

Comments
 (0)