summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-sprintf/src/sprintf.c
diff options
context:
space:
mode:
authorTomasz Dąbrowski <[email protected]>2017-09-25 17:10:34 +0200
committerTomasz Dabrowski <[email protected]>2017-09-27 22:22:04 +0200
commita94525d4ea4bbfb37080a7d5e0d28b25b1834654 (patch)
tree0bcc316bdf8591ad01111c44014c5e4b95bd06a6 /mrbgems/mruby-sprintf/src/sprintf.c
parent1e2c962fa5dc7eb283d7c8529d41d7ff643250c5 (diff)
downloadmruby-a94525d4ea4bbfb37080a7d5e0d28b25b1834654.tar.gz
mruby-a94525d4ea4bbfb37080a7d5e0d28b25b1834654.zip
fix: mrbgems\mruby-sprintf\src\sprintf.c(1052): warning C4244: '+=': conversion from 'mrb_int' to 'int', possible loss of data
Diffstat (limited to 'mrbgems/mruby-sprintf/src/sprintf.c')
-rw-r--r--mrbgems/mruby-sprintf/src/sprintf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c
index 768c113fd..efa0b3d34 100644
--- a/mrbgems/mruby-sprintf/src/sprintf.c
+++ b/mrbgems/mruby-sprintf/src/sprintf.c
@@ -999,13 +999,15 @@ retry:
case 'A': {
mrb_value val = GETARG();
double fval;
- int i, need = 6;
+ mrb_int i;
+ mrb_int need = 6;
char fbuf[32];
+ int frexp_result;
fval = mrb_float(mrb_Float(mrb, val));
if (!isfinite(fval)) {
const char *expr;
- const int elen = 3;
+ const mrb_int elen = 3;
char sign = '\0';
if (isnan(fval)) {
@@ -1045,7 +1047,8 @@ retry:
need = 0;
if (*p != 'e' && *p != 'E') {
i = INT_MIN;
- frexp(fval, &i);
+ frexp(fval, &frexp_result);
+ i = (mrb_int)frexp_result;
if (i > 0)
need = BIT_DIGITS(i);
}