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:
parent
03d46951b2
commit
b59698aa10
@ -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];
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user