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