summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-pack
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-08-17 12:52:56 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-08-17 12:52:56 +0900
commit4385590d31d74efb2de3208ef1fc371b63548f0f (patch)
tree575a99e9e9eaac8082878f541066360bd213648a /mrbgems/mruby-pack
parentbfe2bd49601df20643b6554ebb7ca4177dac5e25 (diff)
downloadmruby-4385590d31d74efb2de3208ef1fc371b63548f0f.tar.gz
mruby-4385590d31d74efb2de3208ef1fc371b63548f0f.zip
pack.c: reduce dispatch in `pack_unpack()`.
Diffstat (limited to 'mrbgems/mruby-pack')
-rw-r--r--mrbgems/mruby-pack/src/pack.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c
index 0e76e3f92..9a859da51 100644
--- a/mrbgems/mruby-pack/src/pack.c
+++ b/mrbgems/mruby-pack/src/pack.c
@@ -1501,25 +1501,23 @@ pack_unpack(mrb_state *mrb, mrb_value str, int single)
continue;
}
- if (flags & PACK_FLAG_COUNT2) {
- sptr = (const unsigned char *)RSTRING_PTR(str) + srcidx;
- switch (dir) {
- case PACK_DIR_HEX:
- srcidx += unpack_h(mrb, sptr, srclen - srcidx, result, count, flags);
- break;
- case PACK_DIR_STR:
- srcidx += unpack_a(mrb, sptr, srclen - srcidx, result, count, flags);
- break;
- case PACK_DIR_BASE64:
- srcidx += unpack_m(mrb, sptr, srclen - srcidx, result);
- break;
- case PACK_DIR_QENC:
- srcidx += unpack_M(mrb, sptr, srclen - srcidx, result);
- break;
- default:
- break;
- }
+ sptr = (const unsigned char *)RSTRING_PTR(str) + srcidx;
+ switch (dir) {
+ case PACK_DIR_HEX:
+ srcidx += unpack_h(mrb, sptr, srclen - srcidx, result, count, flags);
+ continue;
+ case PACK_DIR_STR:
+ srcidx += unpack_a(mrb, sptr, srclen - srcidx, result, count, flags);
continue;
+ case PACK_DIR_BASE64:
+ srcidx += unpack_m(mrb, sptr, srclen - srcidx, result);
+ continue;
+ break;
+ case PACK_DIR_QENC:
+ srcidx += unpack_M(mrb, sptr, srclen - srcidx, result);
+ continue;
+ default:
+ break;
}
while (count != 0) {