summaryrefslogtreecommitdiff
path: root/perl/pack.c
diff options
context:
space:
mode:
authorTokuhiro Matsuno <tokuhirom@gmail.com>2009-07-03 15:14:31 +0900
committerTokuhiro Matsuno <tokuhirom@gmail.com>2009-07-03 15:14:31 +0900
commitb45dc8db61a5f97369094592bcf80116c1019c37 (patch)
treef08eeba717438d6ea445c28e5f1938de590b2725 /perl/pack.c
parent3397d261d8de9895fb0862348af666f6f11f5ea7 (diff)
downloadmsgpack-python-b45dc8db61a5f97369094592bcf80116c1019c37.tar.gz
check SvROK first
Diffstat (limited to 'perl/pack.c')
-rw-r--r--perl/pack.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/perl/pack.c b/perl/pack.c
index b329551..b1e5677 100644
--- a/perl/pack.c
+++ b/perl/pack.c
@@ -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;