check SvROK first

This commit is contained in:
Tokuhiro Matsuno 2009-07-03 15:14:31 +09:00
parent 3397d261d8
commit b45dc8db61

View File

@ -141,6 +141,9 @@ static void _msgpack_pack_sv(enc_t *enc, SV* val) {
if (val==NULL) {
msgpack_pack_nil(enc);
return;
} else if (SvROK(val)) {
_msgpack_pack_sv(enc, SvRV(val));
return;
}
switch (SvTYPE(val)) {
@ -200,9 +203,6 @@ static void _msgpack_pack_sv(enc_t *enc, SV* val) {
}
}
break;
case SVt_RV:
_msgpack_pack_sv(enc, SvRV(val));
break;
default:
if (SvPOKp(val)) {
STRLEN len;