Code Duplication    Length = 13-15 lines in 4 locations

src/PhpSpreadsheet/Reader/Xls/Escher.php 4 locations

@@ 389-403 (lines=15) @@
386
    /**
387
     * Read OPT record. This record may occur within DggContainer record or SpContainer
388
     */
389
    private function readOPT()
390
    {
391
        // offset: 0; size: 2; recVer and recInstance
392
393
        // bit: 4-15; mask: 0xFFF0; recInstance
394
        $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt2d($this->data, $this->pos)) >> 4;
395
396
        $length = \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt4d($this->data, $this->pos + 4);
397
        $recordData = substr($this->data, $this->pos + 8, $length);
398
399
        // move stream pointer to next record
400
        $this->pos += 8 + $length;
401
402
        $this->readOfficeArtRGFOPTE($recordData, $recInstance);
403
    }
404
405
    /**
406
     * Read TertiaryOPT record
@@ 408-420 (lines=13) @@
405
    /**
406
     * Read TertiaryOPT record
407
     */
408
    private function readTertiaryOPT()
409
    {
410
        // offset: 0; size: 2; recVer and recInstance
411
412
        // bit: 4-15; mask: 0xFFF0; recInstance
413
        $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt2d($this->data, $this->pos)) >> 4;
414
415
        $length = \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt4d($this->data, $this->pos + 4);
416
        $recordData = substr($this->data, $this->pos + 8, $length);
417
418
        // move stream pointer to next record
419
        $this->pos += 8 + $length;
420
    }
421
422
    /**
423
     * Read SplitMenuColors record
@@ 527-539 (lines=13) @@
524
    /**
525
     * Read Sp record (Shape)
526
     */
527
    private function readSp()
528
    {
529
        // offset: 0; size: 2; recVer and recInstance
530
531
        // bit: 4-15; mask: 0xFFF0; recInstance
532
        $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt2d($this->data, $this->pos)) >> 4;
533
534
        $length = \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt4d($this->data, $this->pos + 4);
535
        $recordData = substr($this->data, $this->pos + 8, $length);
536
537
        // move stream pointer to next record
538
        $this->pos += 8 + $length;
539
    }
540
541
    /**
542
     * Read ClientTextbox record
@@ 544-556 (lines=13) @@
541
    /**
542
     * Read ClientTextbox record
543
     */
544
    private function readClientTextbox()
545
    {
546
        // offset: 0; size: 2; recVer and recInstance
547
548
        // bit: 4-15; mask: 0xFFF0; recInstance
549
        $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt2d($this->data, $this->pos)) >> 4;
550
551
        $length = \PhpOffice\PhpSpreadsheet\Reader\Xls::getInt4d($this->data, $this->pos + 4);
552
        $recordData = substr($this->data, $this->pos + 8, $length);
553
554
        // move stream pointer to next record
555
        $this->pos += 8 + $length;
556
    }
557
558
    /**
559
     * Read ClientAnchor record. This record holds information about where the shape is anchored in worksheet