1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-07 08:05:25 +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) if ($bbcode_uid)
{ {
$this->bbcode_uid = $bbcode_uid; $this->bbcode_uid = $bbcode_uid;
} }
if ($bbcode_bitfield) if ($bbcode_bitfield !== FALSE)
{ {
$this->bbcode_bitfield = $bbcode_bitfield; $this->bbcode_bitfield = $bbcode_bitfield;
} }
elseif (!$this->bbcode_bitfield) if (!$this->bbcode_bitfield)
{ {
return $message; return $message;
} }
@ -62,7 +62,7 @@ class bbcode
$bitlen = strlen(decbin($this->bbcode_bitfield)); $bitlen = strlen(decbin($this->bbcode_bitfield));
for ($bbcode_id = 0; $bbcode_id < $bitlen; ++$bbcode_id) 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) foreach ($this->bbcode_cache[$bbcode_id] as $type => $array)
{ {
@ -105,7 +105,7 @@ class bbcode
for ($bbcode_id = 0; $bbcode_id < $bitlen; ++$bbcode_id) 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 // do not try to re-cache it if it's already in
continue; 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]; return $bbcode_hardtpl[$tpl_name];
} }

View File

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