error handler function reset to cover additional errors

This commit is contained in:
Steffen Schröder 2014-06-12 16:59:24 +02:00
parent c95b08d304
commit 765fab6622

View File

@ -27,6 +27,7 @@ class ErrorHandler {
* Private Properties * Private Properties
*/ */
private $maniaControl = null; private $maniaControl = null;
private $handlingError = null;
/** /**
* Construct Error Handler * Construct Error Handler
@ -73,6 +74,13 @@ class ErrorHandler {
return false; return false;
} }
if (!$this->handlingError) {
// Reset error handler for safety
$this->handlingError = true;
set_error_handler(array(&$this, 'handleError'), -1);
}
// Build log message
$errorTag = $this->getErrorTag($errorNumber); $errorTag = $this->getErrorTag($errorNumber);
$userError = $this->isUserErrorNumber($errorNumber); $userError = $this->isUserErrorNumber($errorNumber);
$traceSourceClass = null; $traceSourceClass = null;
@ -92,6 +100,7 @@ class ErrorHandler {
$this->maniaControl->log($logMessage); $this->maniaControl->log($logMessage);
if (!DEV_MODE && !$userError && !$suppressed) { if (!DEV_MODE && !$userError && !$suppressed) {
// Report error
$report = array(); $report = array();
$report['Type'] = 'Error'; $report['Type'] = 'Error';
$report['Message'] = $message; $report['Message'] = $message;
@ -132,6 +141,9 @@ class ErrorHandler {
$this->maniaControl->quit('Quitting ManiaControl after Fatal Error.'); $this->maniaControl->quit('Quitting ManiaControl after Fatal Error.');
} }
// Disable safety state
$this->handlingError = false;
return false; return false;
} }