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; } } } }