| Server IP : 104.21.74.147 / Your IP : 216.73.217.154 Web Server : nginx/1.24.0 System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/rebeccaone.com/wp-content/plugins/cornerstone/includes/classes/Vm/Callstack/ |
Upload File : |
<?php
namespace Themeco\Cornerstone\Vm\Callstack;
use Themeco\Cornerstone\Util\Factory;
class Stack {
protected $frames = [];
protected $frame;
protected $env;
protected $active;
public function __construct(Frame $frame) {
$this->frame = $frame;
$this->active = $this->frame;
}
public function setup(ICallstack $env) {
$this->env = $env;
$this->frame->initializeFrame($this, null, null);
$this->env->initializeStackFrame( $this->frame );
return $this;
}
public function initializeFrame( $frame ) {
$this->env->initializeStackFrame( $frame );
$this->frames[$frame->id()] = $frame;
}
public function disposeFrame( $frame ) {
$this->setActive($frame->previous());
unset($this->frames[$frame->id()]);
}
public function setActive($frame) {
$this->active = $frame;
}
public function active() {
return $this->active;
}
public function newFrame( $from = null ) {
return $this->active->newFrame( $this->locateOtherFrame( $from ) );
}
public function locateOtherFrame( $frameOrId ) {
if ( is_null( $frameOrId ) ) {
return $frameOrId;
}
if ( is_a( $frameOrId, Frame::class ) ) {
return $frameOrId;
}
return isset( $this->frames[$frameOrId] ) ? $this->frames[$frameOrId] : null;
}
public function env() {
return $this->env();
}
public function frame() {
return $this->frame;
}
}