private void UpdateDependency(StructCell cell) { var dataSize = cell.GetStructDef().GetInstanceDataSize(cell, _instance); if (_dependencyStartOffset < 0) { _dependencyStartOffset = cell.Offset; _dependencySize = dataSize; } // include only adjacent cells in dependency range calculation else if (cell.Offset + dataSize == _dependencyStartOffset) { _dependencyStartOffset = cell.Offset; _dependencySize += dataSize; } else if (cell.Offset == _dependencyStartOffset + _dependencySize) { _dependencySize += dataSize; } }
private void calcChecksum(IConvertible value, StructCell cell) { if (Utils.IsNumeric(value)) { this._checksum += long.Parse(value.ToString()); } else if (value.GetTypeCode() == TypeCode.String && this.Offset < this.Stream.Length - 34) { byte[] buffer = Utils.ToBytes(value); this._checksum += ((StrField)cell.GetStructDef()).GetWide() ? buffer.Length / 2 : buffer.Length; for (int j = 0; j < buffer.Length; j++) { this._checksum += buffer[j]; } } else { var a = 10; } }