File Manager Lite
Dir:
/home/durantab/esebok.com/vendor/league/commonmark/src/Reference
Upload
[..]
MemoryLimitedReferenceMap.php (1.59 KB)
Edit
Rename
Del
Reference.php (1.13 KB)
Edit
Rename
Del
ReferenceInterface.php (623 B)
Edit
Rename
Del
ReferenceMap.php (1.97 KB)
Edit
Rename
Del
ReferenceParser.php (9.02 KB)
Edit
Rename
Del
Edit: MemoryLimitedReferenceMap.php
<?php declare(strict_types=1); /* * This file is part of the league/commonmark package. * * (c) Colin O'Dell <colinodell@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace League\CommonMark\Reference; final class MemoryLimitedReferenceMap implements ReferenceMapInterface { private ReferenceMapInterface $decorated; private const MINIMUM_SIZE = 100_000; private int $remaining; public function __construct(ReferenceMapInterface $decorated, int $maxSize) { $this->decorated = $decorated; $this->remaining = \max(self::MINIMUM_SIZE, $maxSize); } public function add(ReferenceInterface $reference): void { $this->decorated->add($reference); } public function contains(string $label): bool { return $this->decorated->contains($label); } public function get(string $label): ?ReferenceInterface { $reference = $this->decorated->get($label); if ($reference === null) { return null; } // Check for expansion limit $this->remaining -= \strlen($reference->getDestination()) + \strlen($reference->getTitle()); if ($this->remaining < 0) { return null; } return $reference; } /** * @return \Traversable<string, ReferenceInterface> */ public function getIterator(): \Traversable { return $this->decorated->getIterator(); } public function count(): int { return $this->decorated->count(); } }
Simpan