summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/Storable/Storable.xs2
-rw-r--r--ext/Storable/t/integer.t2
2 files changed, 3 insertions, 1 deletions
diff --git a/ext/Storable/Storable.xs b/ext/Storable/Storable.xs
index 86f8b65752..41dffca1d5 100644
--- a/ext/Storable/Storable.xs
+++ b/ext/Storable/Storable.xs
@@ -1960,7 +1960,7 @@ static int store_scalar(stcxt_t *cxt, SV *sv)
#else
SvIV_please(sv);
- if (SvIOK(sv)) {
+ if (SvIOK_notUV(sv)) {
iv = SvIV(sv);
goto integer; /* Share code above */
}
diff --git a/ext/Storable/t/integer.t b/ext/Storable/t/integer.t
index 8b0e6c4bab..ec7961eb15 100644
--- a/ext/Storable/t/integer.t
+++ b/ext/Storable/t/integer.t
@@ -64,6 +64,8 @@ my @numbers =
0x7FFFFFFF, 0x80000000, 0x80000001, 0xFFFFFFFF, 0xDEADBEEF,
# UV bounds
$max_iv_p1, $max_uv_m1, $max_uv, $lots_of_9C,
+ # NV-UV conversion
+ 2559831922.0,
);
plan tests => @processes * @numbers * 5;