mirror of
https://github.com/msgpack/msgpack-python.git
synced 2026-02-07 02:09:59 +00:00
works correctly under Perl5.8.x. Perl5.8.x makes "a" as PVIV in {"a", 0}.
This commit is contained in:
parent
9a342ab7f8
commit
8e166de1d1
1 changed files with 10 additions and 10 deletions
20
perl/pack.c
20
perl/pack.c
|
|
@ -81,14 +81,6 @@ static void _msgpack_pack_sv(enc_t *enc, SV* val) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case SVt_PV:
|
||||
{
|
||||
STRLEN len;
|
||||
char * cval = SvPV(val, len);
|
||||
msgpack_pack_raw(enc, len);
|
||||
msgpack_pack_raw_body(enc, cval, len);
|
||||
}
|
||||
break;
|
||||
case SVt_NV:
|
||||
PACK_WRAPPER(NVTYPE)(enc, SvNV(val));
|
||||
break;
|
||||
|
|
@ -126,8 +118,16 @@ static void _msgpack_pack_sv(enc_t *enc, SV* val) {
|
|||
_msgpack_pack_sv(enc, SvRV(val));
|
||||
break;
|
||||
default:
|
||||
sv_dump(val);
|
||||
Perl_croak(aTHX_ "msgpack for perl doesn't supported this type: %d\n", SvTYPE(val));
|
||||
if (SvPOKp(val)) {
|
||||
STRLEN len;
|
||||
char * cval = SvPV(val, len);
|
||||
msgpack_pack_raw(enc, len);
|
||||
msgpack_pack_raw_body(enc, cval, len);
|
||||
return;
|
||||
} else {
|
||||
sv_dump(val);
|
||||
Perl_croak(aTHX_ "msgpack for perl doesn't supported this type: %d\n", SvTYPE(val));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue