From 92596de38a4854b3d904c444d538aa5e306c84c1 Mon Sep 17 00:00:00 2001 From: c6burns Date: Sat, 2 Mar 2019 01:45:38 -0700 Subject: [PATCH] Weaver follow on pr to 490 (#519) * removed workaround from previous cecil version that now causes sharing violation console warning * fixed language feature error -- null prop op is C#4 but .sln target is net35 * separated editor logging (required) from console logging (optional) * fix issue introduced by flipping boolean property meaning in 9895bff * added updated weaver assembly * updated to release assembly - wrong assembly in ef0c903 * commenting weave target debug log to retain prev behaviour (oops) --- Assets/Mirror/Plugins/Mirror.Weaver.dll | Bin 78848 -> 77824 bytes Weaver/Weaver/CompilationFinishedHook.cs | 10 +++++---- Weaver/Weaver/Weaver.cs | 25 ----------------------- 3 files changed, 6 insertions(+), 29 deletions(-) diff --git a/Assets/Mirror/Plugins/Mirror.Weaver.dll b/Assets/Mirror/Plugins/Mirror.Weaver.dll index c59a3e8d34bb661c6e9602f684fb3efb2120a372..d1e4cf0bf4709f36f92a5318214f811dfd232fc1 100644 GIT binary patch delta 22200 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 S8>Cyh?{{|QU-FiYrvC?B9r=I& delta 22866 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 diff --git a/Weaver/Weaver/CompilationFinishedHook.cs b/Weaver/Weaver/CompilationFinishedHook.cs index fb9cd0765..9b08e5a9f 100644 --- a/Weaver/Weaver/CompilationFinishedHook.cs +++ b/Weaver/Weaver/CompilationFinishedHook.cs @@ -25,25 +25,26 @@ public class CompilationFinishedHook static void HandleMessage(string msg) { if (UnityLogEnabled) Debug.Log(msg); - OnWeaverMessage?.Invoke(msg); + if (OnWeaverMessage != null) OnWeaverMessage.Invoke(msg); } // warning message handler that also calls OnWarningMethod delegate static void HandleWarning(string msg) { if (UnityLogEnabled) Debug.LogWarning(msg); - OnWeaverWarning?.Invoke(msg); + if (OnWeaverWarning != null) OnWeaverWarning.Invoke(msg); } // error message handler that also calls OnErrorMethod delegate static void HandleError(string msg) { if (UnityLogEnabled) Debug.LogError(msg); - OnWeaverError?.Invoke(msg); + if (OnWeaverError != null) OnWeaverError.Invoke(msg); } static CompilationFinishedHook() { + UnityLogEnabled = true; // assemblyPath: Library/ScriptAssemblies/Assembly-CSharp.dll/ // assemblyPath: Library/ScriptAssemblies/Assembly-CSharp-Editor.dll CompilationPipeline.assemblyCompilationFinished += (assemblyPath, messages) => @@ -85,7 +86,8 @@ static CompilationFinishedHook() bool buildingForEditor = assemblyPath.EndsWith("Editor.dll"); if (!buildingForEditor) { - if (UnityLogEnabled) Console.WriteLine("Weaving: " + assemblyPath); + //if (UnityLogEnabled) Debug.Log("Weaving: " + assemblyPath); // uncomment to easily observe weave targets + Console.WriteLine("Weaving: " + assemblyPath); // assemblyResolver: unity uses this by default: // ICompilationExtension compilationExtension = GetCompilationExtension(); // IAssemblyResolver assemblyResolver = compilationExtension.GetAssemblyResolver(editor, file, null); diff --git a/Weaver/Weaver/Weaver.cs b/Weaver/Weaver/Weaver.cs index 4ec5dab5d..b22036d1a 100644 --- a/Weaver/Weaver/Weaver.cs +++ b/Weaver/Weaver/Weaver.cs @@ -1466,31 +1466,6 @@ static bool Weave(string assName, IEnumerable dependencies, IAssemblyRes //Console.WriteLine ("Output:" + dest); WriterParameters writeParams = Helpers.GetWriterParameters(readParams); - - // PdbWriterProvider uses ISymUnmanagedWriter2 COM interface but Mono can't invoke a method on it and crashes (actually it first throws the following exception and then crashes). - // One solution would be to convert UNetWeaver to exe file and run it on .NET on Windows (I have tested that and it works). - // However it's much more simple to just write mdb file. - // System.NullReferenceException: Object reference not set to an instance of an object - // at(wrapper cominterop - invoke) Mono.Cecil.Pdb.ISymUnmanagedWriter2:DefineDocument(string, System.Guid &, System.Guid &, System.Guid &, Mono.Cecil.Pdb.ISymUnmanagedDocumentWriter &) - // at Mono.Cecil.Pdb.SymWriter.DefineDocument(System.String url, Guid language, Guid languageVendor, Guid documentType)[0x00000] in < filename unknown >:0 - if (writeParams.SymbolWriterProvider is PdbWriterProvider) - { - writeParams.SymbolWriterProvider = new MdbWriterProvider(); - // old pdb file is out of date so delete it. symbols will be stored in mdb - string pdb = Path.ChangeExtension(assName, ".pdb"); - - try - { - File.Delete(pdb); - } - catch (Exception ex) - { - // workaround until Unity fixes C#7 compiler compability with the UNET weaver - // un-comment it if you want lot of noise - //UnityEngine.Debug.LogWarning(string.Format("Unable to delete file {0}: {1}", pdb, ex.Message)); - } - } - CurrentAssembly.Write(dest, writeParams); }