diff options
author | Moriyoshi Koizumi <moriyoshi@php.net> | 2003-01-17 09:04:02 +0000 |
---|---|---|
committer | Moriyoshi Koizumi <moriyoshi@php.net> | 2003-01-17 09:04:02 +0000 |
commit | f94cbfe52b1597b402e76c5af91180a2c69223d2 (patch) | |
tree | c69de298e530d581d0acfdd5c984dd0e9d98b573 /ext/standard | |
parent | 0e178230b268f3143e9c1009ec3e0a1e99962016 (diff) | |
download | php-git-f94cbfe52b1597b402e76c5af91180a2c69223d2.tar.gz |
Significant speed enhancements. I was underestimating the power of recent
CPUs :)
Diffstat (limited to 'ext/standard')
-rw-r--r-- | ext/standard/filters.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/ext/standard/filters.c b/ext/standard/filters.c index 676ccddeab..85ee31de7b 100644 --- a/ext/standard/filters.c +++ b/ext/standard/filters.c @@ -533,6 +533,7 @@ static void php_conv_base64_decode_dtor(php_conv_base64_decode *inst) /* do nothing */ } +#define bmask(a) (0xffff >> (16 - a)) static php_conv_err_t php_conv_base64_decode_convert(php_conv_base64_decode *inst, const char **in_pp, size_t *in_left_p, char **out_pp, size_t *out_left_p) { php_conv_err_t err; @@ -545,12 +546,6 @@ static php_conv_err_t php_conv_base64_decode_convert(php_conv_base64_decode *ins const static unsigned int nbitsof_pack = 8; - static unsigned int bmask[17] = { - 0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, - 0x00ff, 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, - 0xffff - }; - if (in_pp == NULL || in_left_p == NULL) { if (inst->eos || inst->urem_nbits == 0) { return SUCCESS; @@ -580,7 +575,7 @@ static php_conv_err_t php_conv_base64_decode_convert(php_conv_base64_decode *ins } else { urem_nbits -= pack_bcnt; pack |= (urem >> urem_nbits); - urem &= bmask[urem_nbits]; + urem &= bmask(urem_nbits); pack_bcnt = 0; } if (pack_bcnt > 0) { @@ -606,7 +601,7 @@ static php_conv_err_t php_conv_base64_decode_convert(php_conv_base64_decode *ins } else { urem_nbits = 6 - pack_bcnt; pack |= (i >> urem_nbits); - urem = i & bmask[urem_nbits]; + urem = i & bmask(urem_nbits); pack_bcnt = 0; } } else if (ustat) { @@ -648,6 +643,7 @@ static php_conv_err_t php_conv_base64_decode_convert(php_conv_base64_decode *ins return err; } +#undef bmask /* }}} */ /* {{{ php_conv_qprint_encode */ |