Skip to content

Commit 496641f

Browse files
committed
use rewritten float hanlding
1 parent 3945072 commit 496641f

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

src/mrb_cbor.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,6 @@ decode_null_with_skip(mrb_state *mrb, Reader *r, uint8_t info)
416416
static mrb_value
417417
decode_float(mrb_state *mrb, Reader *r, uint8_t info)
418418
{
419-
mrb_float f;
420419

421420
switch (info) {
422421
case 25: { /* Float16 */
@@ -453,7 +452,7 @@ decode_float(mrb_state *mrb, Reader *r, uint8_t info)
453452

454453
float f32;
455454
memcpy(&f32, &u, sizeof(float));
456-
f = (mrb_float)f32;
455+
return mrb_convert_float(mrb, f32);
457456
break;
458457
}
459458

@@ -466,7 +465,7 @@ decode_float(mrb_state *mrb, Reader *r, uint8_t info)
466465

467466
float f32;
468467
memcpy(&f32, &u, sizeof(float));
469-
f = (mrb_float)f32;
468+
return mrb_convert_float(mrb, f32);
470469
break;
471470
}
472471

@@ -483,16 +482,15 @@ decode_float(mrb_state *mrb, Reader *r, uint8_t info)
483482

484483
double f64;
485484
memcpy(&f64, &u, sizeof(double));
486-
f = (mrb_float)f64;
485+
return mrb_convert_double(mrb, f64);
487486
break;
488487
}
489488

490489
default:
491490
mrb_raise(mrb, E_RUNTIME_ERROR, "invalid float encoding");
492-
f = 0;
493491
}
494492

495-
return mrb_float_value(mrb, f);
493+
return mrb_undef_value();
496494
}
497495
#endif
498496

0 commit comments

Comments
 (0)