diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2021-09-24 19:13:03 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2021-09-24 19:13:03 +0300 |
commit | 7d014bbb8f8a09891999d1be90b73db618d5dd3d (patch) | |
tree | 53d52c7393b6651f030b134b3725074010513003 | |
parent | 1916c77c9b79c20225f997abc195640c11d8e096 (diff) |
null checks, bugfixes
-rw-r--r-- | NesFile.cs | 20 |
1 files changed, 15 insertions, 5 deletions
@@ -14,27 +14,37 @@ namespace com.clusterrr.Famicom.Containers /// <summary>
/// PRG data
/// </summary>
- public IEnumerable<byte> PRG { get => Array.AsReadOnly(prg); set => prg = value.ToArray(); }
+ public IEnumerable<byte> PRG {
+ get => Array.AsReadOnly(prg);
+ set => prg = (value ?? new byte[0]).ToArray();
+ }
/// <summary>
/// CHR data (can be null if none)
/// </summary>
- public IEnumerable<byte> CHR { get => Array.AsReadOnly(chr); set => chr = value.ToArray(); }
+ public IEnumerable<byte> CHR {
+ get => Array.AsReadOnly(chr);
+ set => chr = (value ?? new byte[0]).ToArray();
+ }
/// <summary>
/// Trainer (can be null if none)
/// </summary>
public IEnumerable<byte> Trainer
{
- get => Array.AsReadOnly(trainer); set
+ get => Array.AsReadOnly(trainer);
+ set
{
if (value != null && value.Count() != 0 && value.Count() != 512)
throw new ArgumentOutOfRangeException("Trainer size must be 512 bytes");
- chr = trainer.ToArray();
+ chr = (value ?? new byte[0]).ToArray();
}
}
/// <summary>
/// Miscellaneous ROM (NES 2.0 only, can be null if none)
/// </summary>
- public IEnumerable<byte> MiscellaneousROM { get => Array.AsReadOnly(miscellaneousROM); set => miscellaneousROM = value.ToArray(); }
+ public IEnumerable<byte> MiscellaneousROM {
+ get => Array.AsReadOnly(miscellaneousROM);
+ set => miscellaneousROM = (value ?? new byte[0]).ToArray();
+ }
/// <summary>
/// Mapper number
/// </summary>
|