original_string: public function writeChanges()
      {
          // Get new generation number
          $latestDelGen = $this->_detectLatestDelGen();
  
          if (!$this->_deletedDirty) {
              // There was no deletions by current process
  
              if ($latestDelGen == $this->_delGen) {
                  // Delete file hasn't been updated by any concurrent process
                  return;
              } else if ($latestDelGen > $this->_delGen) {
                  // Delete file has been updated by some concurrent process
                  // Reload deletions file
                  $this->_delGen  = $latestDelGen;
                  $this->_deleted = $this->_loadDelFile();
  
                  return;
              } else {
                  require_once 'Zend/Search/Lucene/Exception.php';
                  throw new Zend_Search_Lucene_Exception('Delete file processing workflow is corrupted for the segment \'' . $this->_name . '\'.');
              }
          }
  
          if ($latestDelGen > $this->_delGen) {
              // Merge current deletions with latest deletions file
              $this->_delGen = $latestDelGen;
  
              $latestDelete = $this->_loadDelFile();
  
              if (extension_loaded('bitset')) {
                  $this->_deleted = bitset_union($this->_deleted, $latestDelete);
              } else {
                  $this->_deleted += $latestDelete;
              }
          }
  
          if (extension_loaded('bitset')) {
              $delBytes = $this->_deleted;
              $bitCount = count(bitset_to_array($delBytes));
          } else {
              $byteCount = floor($this->_docCount/8)+1;
              $delBytes = str_repeat(chr(0), $byteCount);
              for ($count = 0; $count < $byteCount; $count++) {
                  $byte = 0;
                  for ($bit = 0; $bit < 8; $bit++) {
                      if (isset($this->_deleted[$count*8 + $bit])) {
                          $byte |= (1<<$bit);
                      }
                  }
                  $delBytes[$count] = chr($byte);
              }
              $bitCount = count($this->_deleted);
          }
  
          if ($this->_delGen == -1) {
              // Set delete file generation number to 1
              $this->_delGen = 1;
          } else {
              // Increase delete file generation number by 1
              $this->_delGen++;
          }
  
          $delFile = $this->_directory->createFile($this->_name . '_' . base_convert($this->_delGen, 10, 36) . '.del');
          $delFile->writeInt($this->_docCount);
          $delFile->writeInt($bitCount);
          $delFile->writeBytes($delBytes);
  
          $this->_deletedDirty = false;
      }
code: public function writeChanges()
      {
          // Get new generation number
          $latestDelGen = $this->_detectLatestDelGen();
  
          if (!$this->_deletedDirty) {
              // There was no deletions by current process
  
              if ($latestDelGen == $this->_delGen) {
                  // Delete file hasn't been updated by any concurrent process
                  return;
              } else if ($latestDelGen > $this->_delGen) {
                  // Delete file has been updated by some concurrent process
                  // Reload deletions file
                  $this->_delGen  = $latestDelGen;
                  $this->_deleted = $this->_loadDelFile();
  
                  return;
              } else {
                  require_once 'Zend/Search/Lucene/Exception.php';
                  throw new Zend_Search_Lucene_Exception('Delete file processing workflow is corrupted for the segment \'' . $this->_name . '\'.');
              }
          }
  
          if ($latestDelGen > $this->_delGen) {
              // Merge current deletions with latest deletions file
              $this->_delGen = $latestDelGen;
  
              $latestDelete = $this->_loadDelFile();
  
              if (extension_loaded('bitset')) {
                  $this->_deleted = bitset_union($this->_deleted, $latestDelete);
              } else {
                  $this->_deleted += $latestDelete;
              }
          }
  
          if (extension_loaded('bitset')) {
              $delBytes = $this->_deleted;
              $bitCount = count(bitset_to_array($delBytes));
          } else {
              $byteCount = floor($this->_docCount/8)+1;
              $delBytes = str_repeat(chr(0), $byteCount);
              for ($count = 0; $count < $byteCount; $count++) {
                  $byte = 0;
                  for ($bit = 0; $bit < 8; $bit++) {
                      if (isset($this->_deleted[$count*8 + $bit])) {
                          $byte |= (1<<$bit);
                      }
                  }
                  $delBytes[$count] = chr($byte);
              }
              $bitCount = count($this->_deleted);
          }
  
          if ($this->_delGen == -1) {
              // Set delete file generation number to 1
              $this->_delGen = 1;
          } else {
              // Increase delete file generation number by 1
              $this->_delGen++;
          }
  
          $delFile = $this->_directory->createFile($this->_name . '_' . base_convert($this->_delGen, 10, 36) . '.del');
          $delFile->writeInt($this->_docCount);
          $delFile->writeInt($bitCount);
          $delFile->writeBytes($delBytes);
  
          $this->_deletedDirty = false;
      }
code_tokens: public function writeChanges ( ) { // Get new generation number $ latestDelGen = $ this -> _detectLatestDelGen ( ) ; if ( ! $ this -> _deletedDirty ) { // There was no deletions by current process if ( $ latestDelGen == $ this -> _delGen ) { // Delete file hasn't been updated by any concurrent process return ; } else if ( $ latestDelGen > $ this -> _delGen ) { // Delete file has been updated by some concurrent process // Reload deletions file $ this -> _delGen = $ latestDelGen ; $ this -> _deleted = $ this -> _loadDelFile ( ) ; return ; } else { require_once 'Zend/Search/Lucene/Exception.php' ; throw new Zend_Search_Lucene_Exception ( 'Delete file processing workflow is corrupted for the segment \'' . $ this -> _name . '\'.' ) ; } } if ( $ latestDelGen > $ this -> _delGen ) { // Merge current deletions with latest deletions file $ this -> _delGen = $ latestDelGen ; $ latestDelete = $ this -> _loadDelFile ( ) ; if ( extension_loaded ( 'bitset' ) ) { $ this -> _deleted = bitset_union ( $ this -> _deleted , $ latestDelete ) ; } else { $ this -> _deleted += $ latestDelete ; } } if ( extension_loaded ( 'bitset' ) ) { $ delBytes = $ this -> _deleted ; $ bitCount = count ( bitset_to_array ( $ delBytes ) ) ; } else { $ byteCount = floor ( $ this -> _docCount / 8 ) + 1 ; $ delBytes = str_repeat ( chr ( 0 ) , $ byteCount ) ; for ( $ count = 0 ; $ count < $ byteCount ; $ count ++ ) { $ byte = 0 ; for ( $ bit = 0 ; $ bit < 8 ; $ bit ++ ) { if ( isset ( $ this -> _deleted [ $ count * 8 + $ bit ] ) ) { $ byte |= ( 1 << $ bit ) ; } } $ delBytes [ $ count ] = chr ( $ byte ) ; } $ bitCount = count ( $ this -> _deleted ) ; } if ( $ this -> _delGen == - 1 ) { // Set delete file generation number to 1 $ this -> _delGen = 1 ; } else { // Increase delete file generation number by 1 $ this -> _delGen ++ ; } $ delFile = $ this -> _directory -> createFile ( $ this -> _name . '_' . base_convert ( $ this -> _delGen , 10 , 36 ) . '.del' ) ; $ delFile -> writeInt ( $ this -> _docCount ) ; $ delFile -> writeInt ( $ bitCount ) ; $ delFile -> writeBytes ( $ delBytes ) ; $ this -> _deletedDirty = false ; }
docstring: Write changes if it's necessary.
  
  This method must be invoked only from the Writer _updateSegments() method,
  so index Write lock has to be already obtained.
  
  @internal
  @throws Zend_Search_Lucene_Exceptions
docstring_tokens: Write changes if it s necessary .