2008-09-23 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Tue, 23 Sep 2008 14:05:29 +0000 (14:05 -0000)
committerMarek Safar <marek.safar@gmail.com>
Tue, 23 Sep 2008 14:05:29 +0000 (14:05 -0000)
* ModuleBuilder.cs: Fixed NRE when default symbol writer cannot be
loaded.

svn path=/trunk/mcs/; revision=113824

mcs/class/corlib/System.Reflection.Emit/ChangeLog
mcs/class/corlib/System.Reflection.Emit/ModuleBuilder.cs

index 0c9c8f40449c0594138d9f5476f8cdebb84d7216..9bde1e97d93fa44dbe7b770e0226ba706b8d1921 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-23  Marek Safar  <marek.safar@gmail.com>
+
+       * ModuleBuilder.cs: Fixed NRE when default symbol writer cannot be
+       loaded. 
 2008-09-16  Jb Evain  <jbevain@novell.com>
 
        * AssemblyBuilder.cs (AddTypeForwarder): correctly grow the
index 34e4b601046ba5e53a723611a38963a7f9cc27a8..f24bfc07d0459bd49a1f727d8be38a8ce15e3a9f 100644 (file)
@@ -95,14 +95,18 @@ namespace System.Reflection.Emit {
                        
                        if (emitSymbolInfo) {
                                Assembly asm = Assembly.LoadWithPartialName ("Mono.CompilerServices.SymbolWriter");
+                               if (asm == null)
+                                       throw new ExecutionEngineException ("The assembly for default symbol writer cannot be loaded");
+
                                Type t = asm.GetType ("Mono.CompilerServices.SymbolWriter.SymbolWriterImpl");
-                               if (t != null) {
-                                       symbolWriter = (ISymbolWriter) Activator.CreateInstance (t, new object[] { this });
-                                       string fileName = fqname;
-                                       if (assemblyb.AssemblyDir != null)
-                                               fileName = Path.Combine (assemblyb.AssemblyDir, fileName);
-                                       symbolWriter.Initialize (IntPtr.Zero, fileName, true);
-                               }
+                               if (t == null)
+                                       throw new ExecutionEngineException ("The type that implements the default symbol writer interface cannot be found");
+
+                               symbolWriter = (ISymbolWriter) Activator.CreateInstance (t, new object[] { this });
+                               string fileName = fqname;
+                               if (assemblyb.AssemblyDir != null)
+                                       fileName = Path.Combine (assemblyb.AssemblyDir, fileName);
+                               symbolWriter.Initialize (IntPtr.Zero, fileName, true);
                        }
                }