summaryrefslogtreecommitdiff
path: root/ext/standard
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2003-01-17 09:04:02 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2003-01-17 09:04:02 +0000
commitf94cbfe52b1597b402e76c5af91180a2c69223d2 (patch)
treec69de298e530d581d0acfdd5c984dd0e9d98b573 /ext/standard
parent0e178230b268f3143e9c1009ec3e0a1e99962016 (diff)
downloadphp-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.c12
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 */