diff options
| author | Bond-009 <bond.009@outlook.com> | 2021-04-21 14:08:36 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-21 14:08:36 +0200 |
| commit | 24103d0953968b3b4b1018fdaf14e2beff0bb031 (patch) | |
| tree | 547daee47d867246cc704ae2597a9907ae44357d | |
| parent | 86a2e6eedab82d4991048fa2baf8ba0b10633073 (diff) | |
| parent | 63e9b1ae2d8ea159427fb304d8d8503f7003e085 (diff) | |
Merge pull request #5876 from Bond-009/nullref5
DeepCopy: Throw ArgumentNullException if one of the args is null
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItemExtensions.cs | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs index c65477d39..157ed8332 100644 --- a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs +++ b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs @@ -1,5 +1,7 @@ +#nullable enable #pragma warning disable CS1591 +using System; using System.Linq; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -64,9 +66,19 @@ namespace MediaBrowser.Controller.Entities /// <param name="source">The source object.</param> /// <param name="dest">The destination object.</param> public static void DeepCopy<T, TU>(this T source, TU dest) - where T : BaseItem - where TU : BaseItem + where T : BaseItem + where TU : BaseItem { + if (source == null) + { + throw new ArgumentNullException(nameof(source)); + } + + if (dest == null) + { + throw new ArgumentNullException(nameof(dest)); + } + var destProps = typeof(TU).GetProperties().Where(x => x.CanWrite).ToList(); foreach (var sourceProp in typeof(T).GetProperties()) @@ -99,8 +111,8 @@ namespace MediaBrowser.Controller.Entities /// </summary> /// <param name="source">The source object.</param> public static TU DeepCopy<T, TU>(this T source) - where T : BaseItem - where TU : BaseItem, new() + where T : BaseItem + where TU : BaseItem, new() { var dest = new TU(); source.DeepCopy(dest); |
