1
0
Fork 0

Use bitwise operators directly in rules instead of get/set Bitfield

pull/4239/head
Nils Adermann 2015-07-14 14:18:50 +02:00
parent 956035e641
commit cf1af58514
1 changed files with 7 additions and 17 deletions

View File

@ -72,7 +72,7 @@ class Rule
public function getReason()
{
return $this->getBitfield(self::BITFIELD_REASON);
return ($this->bitfield & (255 << self::BITFIELD_REASON)) >> self::BITFIELD_REASON;
}
public function getReasonData()
@ -116,32 +116,32 @@ class Rule
public function setType($type)
{
$this->setBitfield(self::BITFIELD_TYPE, $type);
$this->bitfield = ($this->bitfield & ~(255 << self::BITFIELD_TYPE)) | ((255 & $type) << self::BITFIELD_TYPE);
}
public function getType()
{
return $this->getBitfield(self::BITFIELD_TYPE);
return ($this->bitfield & (255 << self::BITFIELD_TYPE)) >> self::BITFIELD_TYPE;
}
public function disable()
{
$this->setBitfield(self::BITFIELD_DISABLED, 1);
$this->bitfield = ($this->bitfield & ~(255 << self::BITFIELD_DISABLED)) | (1 << self::BITFIELD_DISABLED);
}
public function enable()
{
$this->setBitfield(self::BITFIELD_DISABLED, 0);
$this->bitfield = $this->bitfield & ~(255 << self::BITFIELD_DISABLED);
}
public function isDisabled()
{
return (bool) $this->getBitfield(self::BITFIELD_DISABLED);
return (bool) (($this->bitfield & (255 << self::BITFIELD_DISABLED)) >> self::BITFIELD_DISABLED);
}
public function isEnabled()
{
return !$this->getBitfield(self::BITFIELD_DISABLED);
return !(($this->bitfield & (255 << self::BITFIELD_DISABLED)) >> self::BITFIELD_DISABLED);
}
/**
@ -259,16 +259,6 @@ class Rule
return implode(', ', $prepared);
}
private function getBitfield($offset)
{
return ($this->bitfield & (255 << $offset)) >> $offset;
}
private function setBitfield($offset, $value)
{
$this->bitfield = ($this->bitfield & ~(255 << $offset)) | ((255 & $value) << $offset);
}
/**
* Formats a rule as a string of the format (Literal1|Literal2|...)
*