1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-05 23:25:30 +02:00

Shifting bits appears to be faster than the pow() function

git-svn-id: file:///svn/phpbb/trunk@4190 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Ludovic Arnaud 2003-07-02 22:23:45 +00:00
parent 03d46951b2
commit b59698aa10
2 changed files with 7 additions and 13 deletions

View File

@ -35,18 +35,18 @@ class bbcode
}
}
function bbcode_second_pass(&$message, $bbcode_uid = '', $bbcode_bitfield = '')
function bbcode_second_pass(&$message, $bbcode_uid = '', $bbcode_bitfield = FALSE)
{
if ($bbcode_uid)
{
$this->bbcode_uid = $bbcode_uid;
}
if ($bbcode_bitfield)
if ($bbcode_bitfield !== FALSE)
{
$this->bbcode_bitfield = $bbcode_bitfield;
}
elseif (!$this->bbcode_bitfield)
if (!$this->bbcode_bitfield)
{
return $message;
}
@ -62,7 +62,7 @@ class bbcode
$bitlen = strlen(decbin($this->bbcode_bitfield));
for ($bbcode_id = 0; $bbcode_id < $bitlen; ++$bbcode_id)
{
if ($this->bbcode_bitfield & pow(2, $bbcode_id))
if ($this->bbcode_bitfield & (1 << $bbcode_id))
{
foreach ($this->bbcode_cache[$bbcode_id] as $type => $array)
{
@ -105,7 +105,7 @@ class bbcode
for ($bbcode_id = 0; $bbcode_id < $bitlen; ++$bbcode_id)
{
if (isset($this->bbcode_cache[$bbcode_id]) || !($this->bbcode_bitfield & pow(2, $bbcode_id)))
if (isset($this->bbcode_cache[$bbcode_id]) || !($this->bbcode_bitfield & (1 << $bbcode_id)))
{
// do not try to re-cache it if it's already in
continue;
@ -276,7 +276,7 @@ class bbcode
);
}
if ($bbcode_id != -1 && !($user->theme['bbcode_bitfield'] & pow(2, $bbcode_id)))
if ($bbcode_id != -1 && !($user->theme['bbcode_bitfield'] & (1 << $bbcode_id)))
{
return $bbcode_hardtpl[$tpl_name];
}

View File

@ -180,12 +180,6 @@ class parse_message
foreach ($bbcode_data['regexp'] as $regexp => $replacement)
{
$this->message = preg_replace($regexp, $replacement, $this->message);
if (is_array($this->message))
{
$this->warn_msg[] = $this->message['error_msg'];
$this->message = $this->message['message'];
}
}
}
@ -193,7 +187,7 @@ class parse_message
$new_size = strlen($this->message);
if ($size != $new_size)
{
$this->bbcode_bitfield += pow(2, $bbcode_data['bbcode_id']);
$this->bbcode_bitfield |= (1 << $bbcode_data['bbcode_id']);
$size = $new_size;
}
}