summaryrefslogtreecommitdiff
path: root/complex.c
diff options
context:
space:
mode:
authorTakashi Kokubun <[email protected]>2024-05-29 11:00:27 -0700
committerTakashi Kokubun <[email protected]>2024-05-29 11:00:27 -0700
commit8f1084db9b07cb74f99de70d6f8bb6076d27d8aa (patch)
treea5692cdca7e561f7b15721f042465bb3525ce718 /complex.c
parent22c1e5f126db8e057bdb48d91aa5ae449e019226 (diff)
merge revision(s) dc146babf47a84bbd1f176d766637d4a40327019,f23d5028059078a346efc977287b669d494a5a3f,a0f7de814ae5c299d6ce99bed5fb308a05d50ba0: [Backport #20296]
[Bug #20296] Clear errinfo when `exception: false` [Bug #20296] Refine the test [Bug #20296] Fix the default assertion message
Diffstat (limited to 'complex.c')
-rw-r--r--complex.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/complex.c b/complex.c
index d29189e367..b6fbc856f1 100644
--- a/complex.c
+++ b/complex.c
@@ -2321,8 +2321,11 @@ nucomp_convert(VALUE klass, VALUE a1, VALUE a2, int raise)
return a1;
/* should raise exception for consistency */
if (!k_numeric_p(a1)) {
- if (!raise)
- return rb_protect(to_complex, a1, NULL);
+ if (!raise) {
+ a1 = rb_protect(to_complex, a1, NULL);
+ rb_set_errinfo(Qnil);
+ return a1;
+ }
return to_complex(a1);
}
}