Cache/Fixup

* fix cache collision on list pages caused by improper encoding of category
 * fix cache key not encoding category values of int: 0
 * version bump to flush caches
This commit is contained in:
Sarjuuk
2025-11-13 20:55:41 +01:00
parent 45417122c2
commit 1fe3690244
2 changed files with 10 additions and 4 deletions

View File

@@ -37,14 +37,20 @@ trait TrListPage
public function getCacheKeyComponents() : array public function getCacheKeyComponents() : array
{ {
// max. 3 catgs // max. 3 catgs
// catg max 65535 // catg max 32767 - largest in use should be 11.197.26801 (Spells: Professions > Tailoring > Spellfire Tailoring)
if ($this->category) if ($this->category)
{ {
$catg = 0x0; $catg = 0x0;
for ($i = 0; $i < 3; $i++) for ($i = 0; $i < 3; $i++)
{ {
$catg <<= 4; $catg <<= 4 * 4;
$catg |= ($this->category[$i] ?? 0) & 0xFFFF; if (!isset($this->category[$i]))
continue;
if ($this->category[$i])
$catg |= ($this->category[$i] << 1) & 0xFFFF;
else
$catg |= 1;
} }
} }

View File

@@ -6,7 +6,7 @@ mb_internal_encoding('UTF-8');
error_reporting(E_ALL); error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR); mysqli_report(MYSQLI_REPORT_ERROR);
define('AOWOW_REVISION', 42); define('AOWOW_REVISION', 43);
define('OS_WIN', substr(PHP_OS, 0, 3) == 'WIN'); // OS_WIN as per compile info of php define('OS_WIN', substr(PHP_OS, 0, 3) == 'WIN'); // OS_WIN as per compile info of php
define('CLI', PHP_SAPI === 'cli'); define('CLI', PHP_SAPI === 'cli');
define('CLI_HAS_E', CLI && // WIN10 and later usually support ANSI escape sequences define('CLI_HAS_E', CLI && // WIN10 and later usually support ANSI escape sequences