bug81051.phpt 919 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Bug #80839: PHP problem with JIT
  3. --EXTENSIONS--
  4. opcache
  5. --INI--
  6. opcache.enable=1
  7. opcache.enable_cli=1
  8. opcache.jit_buffer_size=1M
  9. opcache.jit=1205
  10. --FILE--
  11. <?php
  12. class Binary{
  13. public static function readUnsignedVarInt(string $buffer, int &$offset) : int{
  14. $offset++;
  15. return 0;
  16. }
  17. }
  18. class BinaryStream{
  19. private string $buffer;
  20. private int $offset;
  21. public function __construct(string $buffer, int $offset = 0){
  22. $this->buffer = $buffer;
  23. $this->offset = $offset;
  24. }
  25. public function getUnsignedVarInt() : int{
  26. return Binary::readUnsignedVarInt($this->buffer, $this->offset);
  27. }
  28. public function get(int $len) : string{
  29. return $len === 1 ? $this->buffer[$this->offset++] : substr($this->buffer, ($this->offset += $len) - $len, $len);
  30. }
  31. }
  32. $stream = new BinaryStream(str_repeat("\x01a", 1000));
  33. var_dump($stream->getUnsignedVarInt());
  34. var_dump($stream->get(1));
  35. ?>
  36. --EXPECT--
  37. int(0)
  38. string(1) "a"