From b45dc8db61a5f97369094592bcf80116c1019c37 Mon Sep 17 00:00:00 2001
From: Tokuhiro Matsuno <tokuhirom@gmail.com>
Date: Fri, 3 Jul 2009 15:14:31 +0900
Subject: [PATCH] check SvROK first

---
 perl/pack.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/perl/pack.c b/perl/pack.c
index b329551b..b1e56778 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;