FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Fix infinite recursive call bugs in integer division. · mruby/mruby@98799aa · GitHub

/ mruby Public

Commit 98799aa

Browse files
committed
Fix infinite recursive call bugs in integer division.
1 parent 3deb62d commit 98799aa

2 files changed

Lines changed: 4 additions & 0 deletions

File tree

‎mrbgems/mruby-complex/src/complex.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ int_div(mrb_state *mrb, mrb_value x)
304304
}
305305
switch (mrb_type(y)) {
306306
case MRB_TT_COMPLEX:
307+
x = complex_new(mrb, (mrb_float)a, 0);
307308
return mrb_funcall_id(mrb, x, MRB_OPSYM(div), 1, y);
308309
default:
309310
return mrb_float_value(mrb, (mrb_float)a * mrb_to_flo(mrb, y));
@@ -323,6 +324,7 @@ int_quo(mrb_state *mrb, mrb_value x)
323324

324325
switch (mrb_type(y)) {
325326
case MRB_TT_COMPLEX:
327+
x = complex_new(mrb, (mrb_float)a, 0);
326328
return mrb_funcall_id(mrb, x, MRB_OPSYM(div), 1, y);
327329
default:
328330
return mrb_float_value(mrb, (mrb_float)a * mrb_to_flo(mrb, y));

‎mrbgems/mruby-rational/src/rational.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,7 @@ int_div(mrb_state *mrb, mrb_value x)
428428
return mrb_funcall_id(mrb, x, MRB_OPSYM(div), 1, y);
429429
#if defined(MRB_USE_COMPLEX)
430430
case MRB_TT_COMPLEX:
431+
x = mrb_complex_new(mrb, (mrb_float)a, 0);
431432
return mrb_funcall_id(mrb, x, MRB_OPSYM(div), 1, y);
432433
#endif
433434
case MRB_TT_FLOAT:
@@ -460,6 +461,7 @@ int_quo(mrb_state *mrb, mrb_value x)
460461
return mrb_funcall_id(mrb, x, MRB_OPSYM(div), 1, y);
461462
#if defined(MRB_USE_COMPLEX)
462463
case MRB_TT_COMPLEX:
464+
x = mrb_complex_new(mrb, (mrb_float)a, 0);
463465
return mrb_funcall_id(mrb, x, MRB_OPSYM(div), 1, y);
464466
#endif
465467
default:

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL