Page MenuHomeWickedGov Phorge

LuaStandaloneInterpreterFunction.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

LuaStandaloneInterpreterFunction.php

<?php
namespace MediaWiki\Extension\Scribunto\Engines\LuaStandalone;
class LuaStandaloneInterpreterFunction {
/** @var bool[] */
public static $anyChunksDestroyed = [];
/** @var int[][] */
public static $activeChunkIds = [];
/**
* @var int
*/
public $interpreterId;
/**
* @var int
*/
public $id;
/**
* @param int $interpreterId
* @param int $id
*/
public function __construct( $interpreterId, $id ) {
$this->interpreterId = $interpreterId;
$this->id = $id;
$this->incrementRefCount();
}
public function __clone() {
$this->incrementRefCount();
}
public function __wakeup() {
$this->incrementRefCount();
}
public function __destruct() {
$this->decrementRefCount();
}
private function incrementRefCount() {
if ( !isset( self::$activeChunkIds[$this->interpreterId] ) ) {
self::$activeChunkIds[$this->interpreterId] = [ $this->id => 1 ];
} elseif ( !isset( self::$activeChunkIds[$this->interpreterId][$this->id] ) ) {
self::$activeChunkIds[$this->interpreterId][$this->id] = 1;
} else {
self::$activeChunkIds[$this->interpreterId][$this->id]++;
}
}
private function decrementRefCount() {
if ( isset( self::$activeChunkIds[$this->interpreterId][$this->id] ) ) {
if ( --self::$activeChunkIds[$this->interpreterId][$this->id] <= 0 ) {
unset( self::$activeChunkIds[$this->interpreterId][$this->id] );
self::$anyChunksDestroyed[$this->interpreterId] = true;
}
} else {
self::$anyChunksDestroyed[$this->interpreterId] = true;
}
}
}
// Alias exists due to serialization of class name into MWServer.lua
class_alias( LuaStandaloneInterpreterFunction::class, 'Scribunto_LuaStandaloneInterpreterFunction' );

File Metadata

Mime Type
text/x-php
Expires
Aug 19 2026, 16:56 (4 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
61/ff/31d1eba9b39ceb91281e1c0a0d9f
Default Alt Text
LuaStandaloneInterpreterFunction.php (1 KB)

Event Timeline