From 11c4097cba0ff53f74f7d13e8a3b413f61b3a4a6 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 2 Apr 2026 15:32:24 -0400 Subject: [PATCH] Rename Clone extension to DeepClone to avoid conflicts --- SabreTools.Data.Extensions/MetadataExtensions.cs | 6 +++--- SabreTools.Metadata.DatFiles/DatHeader.cs | 2 +- SabreTools.Metadata.DatItems.Test/DatItemTests.cs | 2 +- SabreTools.Metadata.DatItems/DatItemT.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Adjuster.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Analog.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Archive.cs | 2 +- SabreTools.Metadata.DatItems/Formats/BiosSet.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Blank.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Chip.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Condition.cs | 2 +- SabreTools.Metadata.DatItems/Formats/ConfLocation.cs | 2 +- SabreTools.Metadata.DatItems/Formats/ConfSetting.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Configuration.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Control.cs | 2 +- SabreTools.Metadata.DatItems/Formats/DataArea.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Device.cs | 2 +- SabreTools.Metadata.DatItems/Formats/DeviceRef.cs | 2 +- SabreTools.Metadata.DatItems/Formats/DipLocation.cs | 2 +- SabreTools.Metadata.DatItems/Formats/DipSwitch.cs | 2 +- SabreTools.Metadata.DatItems/Formats/DipValue.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Disk.cs | 2 +- SabreTools.Metadata.DatItems/Formats/DiskArea.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Display.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Driver.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Extension.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Feature.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Info.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Input.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Instance.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Media.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Part.cs | 2 +- SabreTools.Metadata.DatItems/Formats/PartFeature.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Port.cs | 2 +- SabreTools.Metadata.DatItems/Formats/RamOption.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Release.cs | 2 +- SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Rom.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Sample.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Serials.cs | 2 +- SabreTools.Metadata.DatItems/Formats/SharedFeat.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Slot.cs | 2 +- SabreTools.Metadata.DatItems/Formats/SlotOption.cs | 2 +- SabreTools.Metadata.DatItems/Formats/SoftwareList.cs | 2 +- SabreTools.Metadata.DatItems/Formats/Sound.cs | 2 +- SabreTools.Metadata.DatItems/Formats/SourceDetails.cs | 2 +- SabreTools.Metadata.DatItems/Machine.cs | 6 +++--- 47 files changed, 51 insertions(+), 51 deletions(-) diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs index c6ba3fa1..bf55a13f 100644 --- a/SabreTools.Data.Extensions/MetadataExtensions.cs +++ b/SabreTools.Data.Extensions/MetadataExtensions.cs @@ -140,7 +140,7 @@ namespace SabreTools.Data.Extensions /// Deep clone a DictionaryBase object /// /// TODO: Move this to Clone methods in each file when keys go away entirely - public static DictionaryBase? Clone(this DictionaryBase self) + public static DictionaryBase? DeepClone(this DictionaryBase self) { // If construction failed, we can't do anything if (Activator.CreateInstance(self.GetType()) is not DictionaryBase clone) @@ -365,12 +365,12 @@ namespace SabreTools.Data.Extensions bool or long or double or string => value, // DictionaryBase types - DictionaryBase db => db.Clone(), + DictionaryBase db => db.DeepClone(), // Enumerable types byte[] bytArr => bytArr.Clone(), string[] strArr => strArr.Clone(), - DictionaryBase[] dbArr => Array.ConvertAll(dbArr, Clone), + DictionaryBase[] dbArr => Array.ConvertAll(dbArr, DeepClone), ICloneable[] clArr => Array.ConvertAll(clArr, cl => cl.Clone()), // Everything else just copies diff --git a/SabreTools.Metadata.DatFiles/DatHeader.cs b/SabreTools.Metadata.DatFiles/DatHeader.cs index 0002b131..0a42f5ab 100644 --- a/SabreTools.Metadata.DatFiles/DatHeader.cs +++ b/SabreTools.Metadata.DatFiles/DatHeader.cs @@ -192,7 +192,7 @@ namespace SabreTools.Metadata.DatFiles /// public Data.Models.Metadata.Header GetInternalClone() { - var header = (_internal.Clone() as Data.Models.Metadata.Header)!; + var header = (_internal.DeepClone() as Data.Models.Metadata.Header)!; // Convert subheader values if (CanOpenSpecified) diff --git a/SabreTools.Metadata.DatItems.Test/DatItemTests.cs b/SabreTools.Metadata.DatItems.Test/DatItemTests.cs index 85559259..cd63bf0d 100644 --- a/SabreTools.Metadata.DatItems.Test/DatItemTests.cs +++ b/SabreTools.Metadata.DatItems.Test/DatItemTests.cs @@ -32,7 +32,7 @@ namespace SabreTools.Metadata.DatItems.Test /// public override object Clone() => new TestDatItem() { - _internal = _internal.Clone() as TestDatItemModel ?? [] + _internal = _internal.DeepClone() as TestDatItemModel ?? [] }; /// diff --git a/SabreTools.Metadata.DatItems/DatItemT.cs b/SabreTools.Metadata.DatItems/DatItemT.cs index f76bfe8f..79354958 100644 --- a/SabreTools.Metadata.DatItems/DatItemT.cs +++ b/SabreTools.Metadata.DatItems/DatItemT.cs @@ -45,7 +45,7 @@ namespace SabreTools.Metadata.DatItems /// /// Get a clone of the current internal model /// - public virtual T GetInternalClone() => (_internal.Clone() as T)!; + public virtual T GetInternalClone() => (_internal.DeepClone() as T)!; #endregion diff --git a/SabreTools.Metadata.DatItems/Formats/Adjuster.cs b/SabreTools.Metadata.DatItems/Formats/Adjuster.cs index c602e6df..d6b81041 100644 --- a/SabreTools.Metadata.DatItems/Formats/Adjuster.cs +++ b/SabreTools.Metadata.DatItems/Formats/Adjuster.cs @@ -59,7 +59,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Adjuster(_internal.Clone() as Data.Models.Metadata.Adjuster ?? []); + public override object Clone() => new Adjuster(_internal.DeepClone() as Data.Models.Metadata.Adjuster ?? []); /// public override Data.Models.Metadata.Adjuster GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/Analog.cs b/SabreTools.Metadata.DatItems/Formats/Analog.cs index 0cdaa4d1..7707b5a0 100644 --- a/SabreTools.Metadata.DatItems/Formats/Analog.cs +++ b/SabreTools.Metadata.DatItems/Formats/Analog.cs @@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Analog(_internal.Clone() as Data.Models.Metadata.Analog ?? []); + public override object Clone() => new Analog(_internal.DeepClone() as Data.Models.Metadata.Analog ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Archive.cs b/SabreTools.Metadata.DatItems/Formats/Archive.cs index 4c70993c..ed358eb9 100644 --- a/SabreTools.Metadata.DatItems/Formats/Archive.cs +++ b/SabreTools.Metadata.DatItems/Formats/Archive.cs @@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Archive(_internal.Clone() as Data.Models.Metadata.Archive ?? []); + public override object Clone() => new Archive(_internal.DeepClone() as Data.Models.Metadata.Archive ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/BiosSet.cs b/SabreTools.Metadata.DatItems/Formats/BiosSet.cs index 0567e8f8..12403a17 100644 --- a/SabreTools.Metadata.DatItems/Formats/BiosSet.cs +++ b/SabreTools.Metadata.DatItems/Formats/BiosSet.cs @@ -49,7 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new BiosSet(_internal.Clone() as Data.Models.Metadata.BiosSet ?? []); + public override object Clone() => new BiosSet(_internal.DeepClone() as Data.Models.Metadata.BiosSet ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Blank.cs b/SabreTools.Metadata.DatItems/Formats/Blank.cs index abc7f6b7..a386f590 100644 --- a/SabreTools.Metadata.DatItems/Formats/Blank.cs +++ b/SabreTools.Metadata.DatItems/Formats/Blank.cs @@ -27,7 +27,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Blank(_internal.Clone() as Data.Models.Metadata.Blank ?? []); + public override object Clone() => new Blank(_internal.DeepClone() as Data.Models.Metadata.Blank ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Chip.cs b/SabreTools.Metadata.DatItems/Formats/Chip.cs index ea5f1d0d..7b3a26cf 100644 --- a/SabreTools.Metadata.DatItems/Formats/Chip.cs +++ b/SabreTools.Metadata.DatItems/Formats/Chip.cs @@ -55,7 +55,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Chip(_internal.Clone() as Data.Models.Metadata.Chip ?? []); + public override object Clone() => new Chip(_internal.DeepClone() as Data.Models.Metadata.Chip ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Condition.cs b/SabreTools.Metadata.DatItems/Formats/Condition.cs index abcc6418..f730e526 100644 --- a/SabreTools.Metadata.DatItems/Formats/Condition.cs +++ b/SabreTools.Metadata.DatItems/Formats/Condition.cs @@ -55,7 +55,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Condition(_internal.Clone() as Data.Models.Metadata.Condition ?? []); + public override object Clone() => new Condition(_internal.DeepClone() as Data.Models.Metadata.Condition ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs b/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs index 91862a84..4a75faff 100644 --- a/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs +++ b/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs @@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new ConfLocation(_internal.Clone() as Data.Models.Metadata.ConfLocation ?? []); + public override object Clone() => new ConfLocation(_internal.DeepClone() as Data.Models.Metadata.ConfLocation ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs b/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs index db6b7d28..cb15271b 100644 --- a/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs +++ b/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs @@ -65,7 +65,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new ConfSetting(_internal.Clone() as Data.Models.Metadata.ConfSetting ?? []); + public override object Clone() => new ConfSetting(_internal.DeepClone() as Data.Models.Metadata.ConfSetting ?? []); /// public override Data.Models.Metadata.ConfSetting GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/Configuration.cs b/SabreTools.Metadata.DatItems/Formats/Configuration.cs index 7c2cdd23..66d28ed9 100644 --- a/SabreTools.Metadata.DatItems/Formats/Configuration.cs +++ b/SabreTools.Metadata.DatItems/Formats/Configuration.cs @@ -100,7 +100,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Configuration(_internal.Clone() as Data.Models.Metadata.Configuration ?? []); + public override object Clone() => new Configuration(_internal.DeepClone() as Data.Models.Metadata.Configuration ?? []); /// public override Data.Models.Metadata.Configuration GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/Control.cs b/SabreTools.Metadata.DatItems/Formats/Control.cs index b4eb740e..2e8128c2 100644 --- a/SabreTools.Metadata.DatItems/Formats/Control.cs +++ b/SabreTools.Metadata.DatItems/Formats/Control.cs @@ -73,7 +73,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Control(_internal.Clone() as Data.Models.Metadata.Control ?? []); + public override object Clone() => new Control(_internal.DeepClone() as Data.Models.Metadata.Control ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/DataArea.cs b/SabreTools.Metadata.DatItems/Formats/DataArea.cs index ff09945b..bca04814 100644 --- a/SabreTools.Metadata.DatItems/Formats/DataArea.cs +++ b/SabreTools.Metadata.DatItems/Formats/DataArea.cs @@ -54,7 +54,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new DataArea(_internal.Clone() as Data.Models.Metadata.DataArea ?? []); + public override object Clone() => new DataArea(_internal.DeepClone() as Data.Models.Metadata.DataArea ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Device.cs b/SabreTools.Metadata.DatItems/Formats/Device.cs index cba73862..726b54b1 100644 --- a/SabreTools.Metadata.DatItems/Formats/Device.cs +++ b/SabreTools.Metadata.DatItems/Formats/Device.cs @@ -95,7 +95,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Device(_internal.Clone() as Data.Models.Metadata.Device ?? []); + public override object Clone() => new Device(_internal.DeepClone() as Data.Models.Metadata.Device ?? []); /// public override Data.Models.Metadata.Device GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs b/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs index b0dc6ace..eef43874 100644 --- a/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs +++ b/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs @@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new DeviceRef(_internal.Clone() as Data.Models.Metadata.DeviceRef ?? []); + public override object Clone() => new DeviceRef(_internal.DeepClone() as Data.Models.Metadata.DeviceRef ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/DipLocation.cs b/SabreTools.Metadata.DatItems/Formats/DipLocation.cs index 5b044e93..f56cff1b 100644 --- a/SabreTools.Metadata.DatItems/Formats/DipLocation.cs +++ b/SabreTools.Metadata.DatItems/Formats/DipLocation.cs @@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new DipLocation(_internal.Clone() as Data.Models.Metadata.DipLocation ?? []); + public override object Clone() => new DipLocation(_internal.DeepClone() as Data.Models.Metadata.DipLocation ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs b/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs index d6b2924d..1cc7b99e 100644 --- a/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs +++ b/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs @@ -128,7 +128,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new DipSwitch(_internal.Clone() as Data.Models.Metadata.DipSwitch ?? []); + public override object Clone() => new DipSwitch(_internal.DeepClone() as Data.Models.Metadata.DipSwitch ?? []); /// public override Data.Models.Metadata.DipSwitch GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/DipValue.cs b/SabreTools.Metadata.DatItems/Formats/DipValue.cs index e207ed2e..b22e7cad 100644 --- a/SabreTools.Metadata.DatItems/Formats/DipValue.cs +++ b/SabreTools.Metadata.DatItems/Formats/DipValue.cs @@ -65,7 +65,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new DipValue(_internal.Clone() as Data.Models.Metadata.DipValue ?? []); + public override object Clone() => new DipValue(_internal.DeepClone() as Data.Models.Metadata.DipValue ?? []); /// public override Data.Models.Metadata.DipValue GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/Disk.cs b/SabreTools.Metadata.DatItems/Formats/Disk.cs index 0af6c769..c3ddb732 100644 --- a/SabreTools.Metadata.DatItems/Formats/Disk.cs +++ b/SabreTools.Metadata.DatItems/Formats/Disk.cs @@ -109,7 +109,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Disk(_internal.Clone() as Data.Models.Metadata.Disk ?? []); + public override object Clone() => new Disk(_internal.DeepClone() as Data.Models.Metadata.Disk ?? []); /// /// Convert a disk to the closest Rom approximation diff --git a/SabreTools.Metadata.DatItems/Formats/DiskArea.cs b/SabreTools.Metadata.DatItems/Formats/DiskArea.cs index 326e9ca4..e804e0f7 100644 --- a/SabreTools.Metadata.DatItems/Formats/DiskArea.cs +++ b/SabreTools.Metadata.DatItems/Formats/DiskArea.cs @@ -38,7 +38,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new DiskArea(_internal.Clone() as Data.Models.Metadata.DiskArea ?? []); + public override object Clone() => new DiskArea(_internal.DeepClone() as Data.Models.Metadata.DiskArea ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Display.cs b/SabreTools.Metadata.DatItems/Formats/Display.cs index d3b29c67..de1e3f89 100644 --- a/SabreTools.Metadata.DatItems/Formats/Display.cs +++ b/SabreTools.Metadata.DatItems/Formats/Display.cs @@ -147,7 +147,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Display(_internal.Clone() as Data.Models.Metadata.Display ?? []); + public override object Clone() => new Display(_internal.DeepClone() as Data.Models.Metadata.Display ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Driver.cs b/SabreTools.Metadata.DatItems/Formats/Driver.cs index 1756da86..9c862f65 100644 --- a/SabreTools.Metadata.DatItems/Formats/Driver.cs +++ b/SabreTools.Metadata.DatItems/Formats/Driver.cs @@ -103,7 +103,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Driver(_internal.Clone() as Data.Models.Metadata.Driver ?? []); + public override object Clone() => new Driver(_internal.DeepClone() as Data.Models.Metadata.Driver ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Extension.cs b/SabreTools.Metadata.DatItems/Formats/Extension.cs index 47232544..a66c0b4b 100644 --- a/SabreTools.Metadata.DatItems/Formats/Extension.cs +++ b/SabreTools.Metadata.DatItems/Formats/Extension.cs @@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Extension(_internal.Clone() as Data.Models.Metadata.Extension ?? []); + public override object Clone() => new Extension(_internal.DeepClone() as Data.Models.Metadata.Extension ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Feature.cs b/SabreTools.Metadata.DatItems/Formats/Feature.cs index e85d8a24..a7e43bfd 100644 --- a/SabreTools.Metadata.DatItems/Formats/Feature.cs +++ b/SabreTools.Metadata.DatItems/Formats/Feature.cs @@ -61,7 +61,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Feature(_internal.Clone() as Data.Models.Metadata.Feature ?? []); + public override object Clone() => new Feature(_internal.DeepClone() as Data.Models.Metadata.Feature ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Info.cs b/SabreTools.Metadata.DatItems/Formats/Info.cs index df8bd583..64546651 100644 --- a/SabreTools.Metadata.DatItems/Formats/Info.cs +++ b/SabreTools.Metadata.DatItems/Formats/Info.cs @@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Info(_internal.Clone() as Data.Models.Metadata.Info ?? []); + public override object Clone() => new Info(_internal.DeepClone() as Data.Models.Metadata.Info ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Input.cs b/SabreTools.Metadata.DatItems/Formats/Input.cs index de343b4f..662d90f8 100644 --- a/SabreTools.Metadata.DatItems/Formats/Input.cs +++ b/SabreTools.Metadata.DatItems/Formats/Input.cs @@ -76,7 +76,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Input(_internal.Clone() as Data.Models.Metadata.Input ?? []); + public override object Clone() => new Input(_internal.DeepClone() as Data.Models.Metadata.Input ?? []); /// public override Data.Models.Metadata.Input GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/Instance.cs b/SabreTools.Metadata.DatItems/Formats/Instance.cs index 873ed79a..33798be1 100644 --- a/SabreTools.Metadata.DatItems/Formats/Instance.cs +++ b/SabreTools.Metadata.DatItems/Formats/Instance.cs @@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Instance(_internal.Clone() as Data.Models.Metadata.Instance ?? []); + public override object Clone() => new Instance(_internal.DeepClone() as Data.Models.Metadata.Instance ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Media.cs b/SabreTools.Metadata.DatItems/Formats/Media.cs index d45ac675..9435426f 100644 --- a/SabreTools.Metadata.DatItems/Formats/Media.cs +++ b/SabreTools.Metadata.DatItems/Formats/Media.cs @@ -57,7 +57,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Media(_internal.Clone() as Data.Models.Metadata.Media ?? []); + public override object Clone() => new Media(_internal.DeepClone() as Data.Models.Metadata.Media ?? []); /// /// Convert a media to the closest Rom approximation diff --git a/SabreTools.Metadata.DatItems/Formats/Part.cs b/SabreTools.Metadata.DatItems/Formats/Part.cs index ef2151fe..8474612d 100644 --- a/SabreTools.Metadata.DatItems/Formats/Part.cs +++ b/SabreTools.Metadata.DatItems/Formats/Part.cs @@ -54,7 +54,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Part(_internal.Clone() as Data.Models.Metadata.Part ?? []); + public override object Clone() => new Part(_internal.DeepClone() as Data.Models.Metadata.Part ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/PartFeature.cs b/SabreTools.Metadata.DatItems/Formats/PartFeature.cs index b51dd85c..8af708d3 100644 --- a/SabreTools.Metadata.DatItems/Formats/PartFeature.cs +++ b/SabreTools.Metadata.DatItems/Formats/PartFeature.cs @@ -74,7 +74,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new PartFeature(_internal.Clone() as Data.Models.Metadata.Feature ?? []); + public override object Clone() => new PartFeature(_internal.DeepClone() as Data.Models.Metadata.Feature ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Port.cs b/SabreTools.Metadata.DatItems/Formats/Port.cs index fb0f83e4..fcbe2fde 100644 --- a/SabreTools.Metadata.DatItems/Formats/Port.cs +++ b/SabreTools.Metadata.DatItems/Formats/Port.cs @@ -57,7 +57,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Port(_internal.Clone() as Data.Models.Metadata.Port ?? []); + public override object Clone() => new Port(_internal.DeepClone() as Data.Models.Metadata.Port ?? []); /// public override Data.Models.Metadata.Port GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/RamOption.cs b/SabreTools.Metadata.DatItems/Formats/RamOption.cs index 09de128b..a0e8c761 100644 --- a/SabreTools.Metadata.DatItems/Formats/RamOption.cs +++ b/SabreTools.Metadata.DatItems/Formats/RamOption.cs @@ -49,7 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new RamOption(_internal.Clone() as Data.Models.Metadata.RamOption ?? []); + public override object Clone() => new RamOption(_internal.DeepClone() as Data.Models.Metadata.RamOption ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Release.cs b/SabreTools.Metadata.DatItems/Formats/Release.cs index 738fcc72..40ed9d3f 100644 --- a/SabreTools.Metadata.DatItems/Formats/Release.cs +++ b/SabreTools.Metadata.DatItems/Formats/Release.cs @@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Release(_internal.Clone() as Data.Models.Metadata.Release ?? []); + public override object Clone() => new Release(_internal.DeepClone() as Data.Models.Metadata.Release ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs b/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs index 16b8f80c..fb8da182 100644 --- a/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs +++ b/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs @@ -26,7 +26,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new ReleaseDetails(_internal.Clone() as Data.Models.Metadata.ReleaseDetails ?? []); + public override object Clone() => new ReleaseDetails(_internal.DeepClone() as Data.Models.Metadata.ReleaseDetails ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Rom.cs b/SabreTools.Metadata.DatItems/Formats/Rom.cs index ca1e56df..3c15015f 100644 --- a/SabreTools.Metadata.DatItems/Formats/Rom.cs +++ b/SabreTools.Metadata.DatItems/Formats/Rom.cs @@ -397,7 +397,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Rom(_internal.Clone() as Data.Models.Metadata.Rom ?? []); + public override object Clone() => new Rom(_internal.DeepClone() as Data.Models.Metadata.Rom ?? []); #endregion diff --git a/SabreTools.Metadata.DatItems/Formats/Sample.cs b/SabreTools.Metadata.DatItems/Formats/Sample.cs index 1aadb4eb..70bf04fd 100644 --- a/SabreTools.Metadata.DatItems/Formats/Sample.cs +++ b/SabreTools.Metadata.DatItems/Formats/Sample.cs @@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Sample(_internal.Clone() as Data.Models.Metadata.Sample ?? []); + public override object Clone() => new Sample(_internal.DeepClone() as Data.Models.Metadata.Sample ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Serials.cs b/SabreTools.Metadata.DatItems/Formats/Serials.cs index 8d8a8a4a..ddc47806 100644 --- a/SabreTools.Metadata.DatItems/Formats/Serials.cs +++ b/SabreTools.Metadata.DatItems/Formats/Serials.cs @@ -27,7 +27,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Serials(_internal.Clone() as Data.Models.Metadata.Serials ?? []); + public override object Clone() => new Serials(_internal.DeepClone() as Data.Models.Metadata.Serials ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs b/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs index ab7379c0..33bc294e 100644 --- a/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs +++ b/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs @@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new SharedFeat(_internal.Clone() as Data.Models.Metadata.SharedFeat ?? []); + public override object Clone() => new SharedFeat(_internal.DeepClone() as Data.Models.Metadata.SharedFeat ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Slot.cs b/SabreTools.Metadata.DatItems/Formats/Slot.cs index 48c5b1f3..43223404 100644 --- a/SabreTools.Metadata.DatItems/Formats/Slot.cs +++ b/SabreTools.Metadata.DatItems/Formats/Slot.cs @@ -57,7 +57,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Slot(_internal.Clone() as Data.Models.Metadata.Slot ?? []); + public override object Clone() => new Slot(_internal.DeepClone() as Data.Models.Metadata.Slot ?? []); /// public override Data.Models.Metadata.Slot GetInternalClone() diff --git a/SabreTools.Metadata.DatItems/Formats/SlotOption.cs b/SabreTools.Metadata.DatItems/Formats/SlotOption.cs index f3f64e47..280084ad 100644 --- a/SabreTools.Metadata.DatItems/Formats/SlotOption.cs +++ b/SabreTools.Metadata.DatItems/Formats/SlotOption.cs @@ -49,7 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new SlotOption(_internal.Clone() as Data.Models.Metadata.SlotOption ?? []); + public override object Clone() => new SlotOption(_internal.DeepClone() as Data.Models.Metadata.SlotOption ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs b/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs index c4951e5c..ed4694d4 100644 --- a/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs +++ b/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs @@ -59,7 +59,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new SoftwareList(_internal.Clone() as Data.Models.Metadata.SoftwareList ?? []); + public override object Clone() => new SoftwareList(_internal.DeepClone() as Data.Models.Metadata.SoftwareList ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/Sound.cs b/SabreTools.Metadata.DatItems/Formats/Sound.cs index 3716fa56..b0c6b9fa 100644 --- a/SabreTools.Metadata.DatItems/Formats/Sound.cs +++ b/SabreTools.Metadata.DatItems/Formats/Sound.cs @@ -33,7 +33,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new Sound(_internal.Clone() as Data.Models.Metadata.Sound ?? []); + public override object Clone() => new Sound(_internal.DeepClone() as Data.Models.Metadata.Sound ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs b/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs index 00d189d4..4f45ed10 100644 --- a/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs +++ b/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs @@ -27,7 +27,7 @@ namespace SabreTools.Metadata.DatItems.Formats #region Cloning Methods /// - public override object Clone() => new SourceDetails(_internal.Clone() as Data.Models.Metadata.SourceDetails ?? []); + public override object Clone() => new SourceDetails(_internal.DeepClone() as Data.Models.Metadata.SourceDetails ?? []); #endregion } diff --git a/SabreTools.Metadata.DatItems/Machine.cs b/SabreTools.Metadata.DatItems/Machine.cs index abe80866..d0c1599a 100644 --- a/SabreTools.Metadata.DatItems/Machine.cs +++ b/SabreTools.Metadata.DatItems/Machine.cs @@ -68,7 +68,7 @@ namespace SabreTools.Metadata.DatItems public Machine(Data.Models.Metadata.Machine machine) { - _internal = machine.Clone() as Data.Models.Metadata.Machine ?? []; + _internal = machine.DeepClone() as Data.Models.Metadata.Machine ?? []; // Remove all inverted fields Remove(Data.Models.Metadata.Machine.AdjusterKey); @@ -143,14 +143,14 @@ namespace SabreTools.Metadata.DatItems { return new Machine() { - _internal = _internal.Clone() as Data.Models.Metadata.Machine ?? [], + _internal = _internal.DeepClone() as Data.Models.Metadata.Machine ?? [], }; } /// /// Get a clone of the current internal model /// - public Data.Models.Metadata.Machine GetInternalClone() => (_internal.Clone() as Data.Models.Metadata.Machine)!; + public Data.Models.Metadata.Machine GetInternalClone() => (_internal.DeepClone() as Data.Models.Metadata.Machine)!; #endregion