mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-03-19 04:52:59 +01:00
Tweaks
This commit is contained in:
parent
0f02ef20a9
commit
d86104ed5d
@ -48,7 +48,7 @@ STATIC_INLINE void need(enc_t *enc, STRLEN len)
|
|||||||
dTHX;
|
dTHX;
|
||||||
if (enc->cur + len >= enc->end) {
|
if (enc->cur + len >= enc->end) {
|
||||||
STRLEN cur = enc->cur - (char *)SvPVX (enc->sv);
|
STRLEN cur = enc->cur - (char *)SvPVX (enc->sv);
|
||||||
SvGROW (enc->sv, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1);
|
sv_grow (enc->sv, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1);
|
||||||
enc->cur = SvPVX (enc->sv) + cur;
|
enc->cur = SvPVX (enc->sv) + cur;
|
||||||
enc->end = SvPVX (enc->sv) + SvLEN (enc->sv) - 1;
|
enc->end = SvPVX (enc->sv) + SvLEN (enc->sv) - 1;
|
||||||
}
|
}
|
||||||
@ -159,13 +159,17 @@ STATIC_INLINE void _msgpack_pack_sv(enc_t* const enc, SV* const sv, int const de
|
|||||||
msgpack_pack_raw(enc, len);
|
msgpack_pack_raw(enc, len);
|
||||||
msgpack_pack_raw_body(enc, csv, len);
|
msgpack_pack_raw_body(enc, csv, len);
|
||||||
}
|
}
|
||||||
} else if (SvNOKp(sv)) {
|
} else if (SvNIOKp(sv)) {
|
||||||
/* XXX long double is not supported yet. */
|
if(SvUOK(sv)) {
|
||||||
msgpack_pack_double(enc, (double)SvNVX(sv));
|
msgpack_pack_uint32(enc, SvUV(sv));
|
||||||
} else if (SvIOK_UV(sv)) {
|
}
|
||||||
msgpack_pack_uint32(enc, SvUV(sv));
|
else if(SvIOKp(sv)) {
|
||||||
} else if (SvIOKp(sv)) {
|
PACK_IV(enc, SvIV(sv));
|
||||||
PACK_IV(enc, SvIV(sv));
|
}
|
||||||
|
else {
|
||||||
|
/* XXX long double is not supported yet. */
|
||||||
|
msgpack_pack_double(enc, (double)SvNVX(sv));
|
||||||
|
}
|
||||||
} else if (SvROK(sv)) {
|
} else if (SvROK(sv)) {
|
||||||
_msgpack_pack_rv(enc, SvRV(sv), depth-1);
|
_msgpack_pack_rv(enc, SvRV(sv), depth-1);
|
||||||
} else if (!SvOK(sv)) {
|
} else if (!SvOK(sv)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user