public void UpdateReferences(bool closingFlag)
 {
     foreach (IZipIOBlock block3 in (IEnumerable)this._blockManager)
     {
         ZipIOLocalFileBlock   fileBlock = block3 as ZipIOLocalFileBlock;
         ZipIORawDataFileBlock block     = block3 as ZipIORawDataFileBlock;
         if (fileBlock != null)
         {
             ZipIOCentralDirectoryFileHeader header2 = (ZipIOCentralDirectoryFileHeader)this.CentralDirectoryDictionary[fileBlock.FileName];
             if (header2.UpdateIfNeeded(fileBlock))
             {
                 this._dirtyFlag = true;
             }
         }
         else if (block != null)
         {
             long diskImageShift = block.DiskImageShift;
             if (diskImageShift != 0L)
             {
                 foreach (ZipIOCentralDirectoryFileHeader header in this.CentralDirectoryDictionary.Values)
                 {
                     if (block.DiskImageContains(header.OffsetOfLocalHeader))
                     {
                         header.MoveReference(diskImageShift);
                         this._dirtyFlag = true;
                     }
                 }
                 continue;
             }
         }
     }
 }