diff --git a/Source/Editor/CustomEditors/Values/ListValueContainer.cs b/Source/Editor/CustomEditors/Values/ListValueContainer.cs index f8e5dd26c..416b866cc 100644 --- a/Source/Editor/CustomEditors/Values/ListValueContainer.cs +++ b/Source/Editor/CustomEditors/Values/ListValueContainer.cs @@ -46,10 +46,7 @@ namespace FlaxEditor.CustomEditors if (values.HasReferenceValue) { - var v = (IList)values.ReferenceValue; - - // Get the reference value if collections are the same size - if (v != null && values.Count == v.Count) + if (values.ReferenceValue is IList v && values.Count == v.Count && v.Count > index) { _referenceValue = v[index]; _hasReferenceValue = true; diff --git a/Source/Engine/Scripting/ManagedCLR/MAssembly.Mono.cpp b/Source/Engine/Scripting/ManagedCLR/MAssembly.Mono.cpp index 7d00c1b8c..224565429 100644 --- a/Source/Engine/Scripting/ManagedCLR/MAssembly.Mono.cpp +++ b/Source/Engine/Scripting/ManagedCLR/MAssembly.Mono.cpp @@ -326,6 +326,24 @@ bool MAssembly::LoadWithImage(const String& assemblyPath) mono_debug_open_image_from_memory(assemblyImage, _debugData.Get(), _debugData.Count()); } } + +#if 0 + // Hack to load debug information for Newtonsoft.Json (enable it to debug C# code of json lib) + if (assemblyPath.EndsWith(TEXT("FlaxEngine.CSharp.dll"))) + { + static Array NewtonsoftJsonDebugData; + File::ReadAllBytes(StringUtils::GetDirectoryName(assemblyPath) / TEXT("Newtonsoft.Json.pdb"), NewtonsoftJsonDebugData); + if (NewtonsoftJsonDebugData.HasItems()) + { + StringAnsi tmp(StringUtils::GetDirectoryName(assemblyPath) / TEXT("Newtonsoft.Json.dll")); + MonoAssembly* a = mono_assembly_open(tmp.Get(), &status); + if (a) + { + mono_debug_open_image_from_memory(mono_assembly_get_image(a), NewtonsoftJsonDebugData.Get(), NewtonsoftJsonDebugData.Count()); + } + } + } +#endif #endif // Set state diff --git a/Source/Platforms/DotNet/Newtonsoft.Json.dll b/Source/Platforms/DotNet/Newtonsoft.Json.dll index b08068dd3..05dcf0c44 100644 --- a/Source/Platforms/DotNet/Newtonsoft.Json.dll +++ b/Source/Platforms/DotNet/Newtonsoft.Json.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ed0cb43a692d86f2d47bfc93475e554ee8a70b33187b1e1d2356a7d4f25fffa -size 629760 +oid sha256:eed043b9e8a7982f4a60ab332e833bd8834d6d43814773d30fda48a22eda1d8e +size 641536 diff --git a/Source/Platforms/DotNet/Newtonsoft.Json.pdb b/Source/Platforms/DotNet/Newtonsoft.Json.pdb index 9d8502e2c..3848081ec 100644 --- a/Source/Platforms/DotNet/Newtonsoft.Json.pdb +++ b/Source/Platforms/DotNet/Newtonsoft.Json.pdb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5e5b77e2864fee56c380d85c8d1488713c5ba5deacb9005d125d9e47629014e8 -size 249884 +oid sha256:882eecaf201c6d6e7c724e24259df9d23a6c7d8be1b9d407ff646fa24da680ca +size 253816 diff --git a/Source/Platforms/DotNet/Newtonsoft.Json.xml b/Source/Platforms/DotNet/Newtonsoft.Json.xml index c1d3cfd3d..316a82975 100644 --- a/Source/Platforms/DotNet/Newtonsoft.Json.xml +++ b/Source/Platforms/DotNet/Newtonsoft.Json.xml @@ -1865,6 +1865,15 @@ The error message that explains the reason for the exception. The exception that is the cause of the current exception, or null if no inner exception is specified. + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + Instructs the to deserialize properties with no matching class member into the specified collection @@ -2471,6 +2480,15 @@ The error message that explains the reason for the exception. The exception that is the cause of the current exception, or null if no inner exception is specified. + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + Initializes a new instance of the class @@ -2512,6 +2530,15 @@ The error message that explains the reason for the exception. The exception that is the cause of the current exception, or null if no inner exception is specified. + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + Serializes and deserializes objects into and from the JSON format. @@ -2553,7 +2580,7 @@ Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . + The default value is . The type name assembly format. @@ -2620,6 +2647,12 @@ serializing .NET objects to JSON and vice versa. + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + Indicates how JSON text output is formatted. @@ -3003,6 +3036,12 @@ The error handler called during serialization and deserialization. + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + Gets or sets how and values are formatted when writing JSON text, @@ -5479,6 +5518,15 @@ The error message that explains the reason for the exception. The exception that is the cause of the current exception, or null if no inner exception is specified. + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + Initializes a new instance of the class @@ -8898,6 +8946,15 @@ The error message that explains the reason for the exception. The exception that is the cause of the current exception, or null if no inner exception is specified. + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + @@ -9188,10 +9245,10 @@ - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - true if the interface will be ignored when serializing and deserializing types; otherwise, false. + true if the interface will be ignored when serializing and deserializing types; otherwise, false. @@ -9301,6 +9358,13 @@ Type of the object. A for the given type. + + + Creates a for the given type. + + Type of the object. + A for the given type. + Creates a for the given type. @@ -9707,6 +9771,21 @@ The underlying type for the contract. + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + Sets extension data for an object during deserialization. @@ -9750,6 +9829,36 @@ The converter. + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + Gets or sets the default creator method used to create the object. @@ -9826,6 +9935,23 @@ The underlying type for the contract. + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + Contract details for a used by the . diff --git a/Source/Platforms/UWP/Binaries/Newtonsoft.Json.dll b/Source/Platforms/UWP/Binaries/Newtonsoft.Json.dll index 4c908a1ce..1885aed9a 100644 --- a/Source/Platforms/UWP/Binaries/Newtonsoft.Json.dll +++ b/Source/Platforms/UWP/Binaries/Newtonsoft.Json.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a753e82f0d128171be8df8693872615974526e41200105c2853d54283014e1d3 -size 624640 +oid sha256:c43903a192d31dac91b7744e2b1a2e8cec21983ceed630261fd7b80a433fee20 +size 635392 diff --git a/Source/Platforms/XboxOne/Binaries/Newtonsoft.Json.dll b/Source/Platforms/XboxOne/Binaries/Newtonsoft.Json.dll index 4c908a1ce..1885aed9a 100644 --- a/Source/Platforms/XboxOne/Binaries/Newtonsoft.Json.dll +++ b/Source/Platforms/XboxOne/Binaries/Newtonsoft.Json.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a753e82f0d128171be8df8693872615974526e41200105c2853d54283014e1d3 -size 624640 +oid sha256:c43903a192d31dac91b7744e2b1a2e8cec21983ceed630261fd7b80a433fee20 +size 635392 diff --git a/Source/Tools/Flax.Build/Deps/Dependencies/NewtonsoftJson.cs b/Source/Tools/Flax.Build/Deps/Dependencies/NewtonsoftJson.cs index 69d53c990..de9b115ad 100644 --- a/Source/Tools/Flax.Build/Deps/Dependencies/NewtonsoftJson.cs +++ b/Source/Tools/Flax.Build/Deps/Dependencies/NewtonsoftJson.cs @@ -82,10 +82,8 @@ namespace Flax.Deps.Dependencies case TargetPlatform.PS4: case TargetPlatform.XboxScarlett: { - foreach (var file in outputFileNames) - { - Utilities.FileCopy(Path.Combine(binFolder, file), Path.Combine(options.PlatformsFolder, platform.ToString(), file)); - } + var file = "Newtonsoft.Json.dll"; + Utilities.FileCopy(Path.Combine(binFolder, file), Path.Combine(options.PlatformsFolder, platform.ToString(), "Binaries", file)); break; } }