Author: lluis
Date: 2007-05-04 08:18:12 -0400 (Fri, 04 May 2007)
New Revision: 76673

Modified:
   trunk/mono-addins/Mono.Addins/ChangeLog
   trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins.mdp
   trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionContext.cs
   trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionTree.cs
Log:
* Mono.Addins.mdp: Updated.
* Mono.Addins/ExtensionContext.cs: Fixed GetExtensionObjects overload
  which was not using the correct reuseCachedInstance value.
* Mono.Addins/ExtensionTree.cs: Improved error message. When looking
  for a type in an assembly, avoid throwing an exception too early,
  since it may be found in other assemblies.
* Mono.Addins.Database/AddinDatabase.cs: In the addin info cache, also
  store information about unsuccessful lookups, to avoid looking for
  an add-in again if we found that it doesn't exist. In Update(),
  don't use verbose output by default.

Modified: trunk/mono-addins/Mono.Addins/ChangeLog
===================================================================
--- trunk/mono-addins/Mono.Addins/ChangeLog     2007-05-04 12:15:44 UTC (rev 
76672)
+++ trunk/mono-addins/Mono.Addins/ChangeLog     2007-05-04 12:18:12 UTC (rev 
76673)
@@ -1,3 +1,16 @@
+2007-05-04  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
+
+       * Mono.Addins.mdp: Updated.
+       * Mono.Addins/ExtensionContext.cs: Fixed GetExtensionObjects overload
+         which was not using the correct reuseCachedInstance value.
+       * Mono.Addins/ExtensionTree.cs: Improved error message. When looking
+         for a type in an assembly, avoid throwing an exception too early,
+         since it may be found in other assemblies.
+       * Mono.Addins.Database/AddinDatabase.cs: In the addin info cache, also
+         store information about unsuccessful lookups, to avoid looking for
+         an add-in again if we found that it doesn't exist. In Update(),
+         don't use verbose output by default.
+
 2007-04-10  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
 
        * Mono.Addins.mdp, Makefile.am, Mono.Addins.csproj: Updated.

Modified: trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionContext.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionContext.cs       
2007-05-04 12:15:44 UTC (rev 76672)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionContext.cs       
2007-05-04 12:18:12 UTC (rev 76673)
@@ -250,7 +250,7 @@
                
                public object[] GetExtensionObjects (string path, bool 
reuseCachedInstance)
                {
-                       return GetExtensionObjects (path, typeof(object), true);
+                       return GetExtensionObjects (path, typeof(object), 
reuseCachedInstance);
                }
                
                public object[] GetExtensionObjects (string path, Type 
arrayElementType)

Modified: trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionTree.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionTree.cs  2007-05-04 
12:15:44 UTC (rev 76672)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins/ExtensionTree.cs  2007-05-04 
12:18:12 UTC (rev 76673)
@@ -173,7 +173,7 @@
                                return node;
                        }
                        catch (Exception ex) {
-                               AddinManager.ReportError ("Could not read 
extension node", addin, ex, false);
+                               AddinManager.ReportError ("Could not read 
extension node of type '" + ntype.Type + "' from extension path '" + 
tnode.GetPath() + "'", addin, ex, false);
                                return null;
                        }
                }
@@ -199,7 +199,7 @@
                                return true;
                        }
                        
-                       ntype.Type = p.GetType (ntype.TypeName);
+                       ntype.Type = p.GetType (ntype.TypeName, false);
                        if (ntype.Type == null) {
                                AddinManager.ReportError ("Extension node type 
'" + ntype.TypeName + "' not found.", ntype.AddinId, null, false);
                                return false;

Modified: trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs 
2007-05-04 12:15:44 UTC (rev 76672)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.Database/AddinDatabase.cs 
2007-05-04 12:18:12 UTC (rev 76673)
@@ -199,14 +199,20 @@
                
                public Addin GetInstalledAddin (string id, bool 
exactVersionMatch, bool enabledOnly)
                {
-                       Addin sinfo = (Addin) cachedAddinSetupInfos [id];
-                       if (sinfo != null) {
-                               if (!enabledOnly || sinfo.Enabled)
-                                       return sinfo;
-                               if (exactVersionMatch)
+                       Addin sinfo = null;
+                       object ob = cachedAddinSetupInfos [id];
+                       if (ob != null) {
+                               sinfo = ob as Addin;
+                               if (sinfo != null) {
+                                       if (!enabledOnly || sinfo.Enabled)
+                                               return sinfo;
+                                       if (exactVersionMatch)
+                                               return null;
+                               }
+                               else
                                        return null;
                        }
-                               
+               
                        InternalCheck ();
                        
                        using (fileDatabase.LockRead ())
@@ -217,8 +223,11 @@
                                        cachedAddinSetupInfos [id] = sinfo;
                                        if (!enabledOnly || sinfo.Enabled)
                                                return sinfo;
-                                       if (exactVersionMatch)
+                                       if (exactVersionMatch) {
+                                               // Cache lookups with negative 
result
+                                               cachedAddinSetupInfos [id] = 
this;
                                                return null;
+                                       }
                                }
                                
                                // Exact version not found. Look for a 
compatible version
@@ -244,6 +253,9 @@
                                                return sinfo;
                                        }
                                }
+                               
+                               // Cache lookups with negative result
+                               cachedAddinSetupInfos [id] = this;
                                return null;
                        }
                }
@@ -265,10 +277,16 @@
                public Addin GetAddinForHostAssembly (string assemblyLocation)
                {
                        InternalCheck ();
+                       Addin ainfo = null;
                        
-                       Addin ainfo = (Addin) cachedAddinSetupInfos 
[assemblyLocation];
-                       if (ainfo != null)
-                               return ainfo;
+                       object ob = cachedAddinSetupInfos [assemblyLocation];
+                       if (ob != null) {
+                               ainfo = ob as Addin;
+                               if (ainfo != null)
+                                       return ainfo;
+                               else
+                                       return null;
+                       }
 
                        AddinHostIndex index = GetAddinHostIndex ();
                        string addin, addinFile;
@@ -605,7 +623,7 @@
                public void Update (IProgressStatus monitor)
                {
                        if (monitor == null)
-                               monitor = new ConsoleProgressStatus (true);
+                               monitor = new ConsoleProgressStatus (false);
 
                        if (RunningSetupProcess)
                                return;

Modified: trunk/mono-addins/Mono.Addins/Mono.Addins.mdp
===================================================================
--- trunk/mono-addins/Mono.Addins/Mono.Addins.mdp       2007-05-04 12:15:44 UTC 
(rev 76672)
+++ trunk/mono-addins/Mono.Addins/Mono.Addins.mdp       2007-05-04 12:18:12 UTC 
(rev 76673)
@@ -1,4 +1,4 @@
-<Project defaultDeployTarget="Directory" name="Mono.Addins" fileversion="2.0" 
language="C#" clr-version="Net_1_1" ctype="DotNetProject">
+<Project name="Mono.Addins" fileversion="2.0" language="C#" 
clr-version="Net_1_1" ctype="DotNetProject">
   <Configurations active="Default">
     <Configuration name="Default" ctype="DotNetProjectConfiguration">
       <Output directory="../bin" assembly="Mono.Addins.dll" />
@@ -7,9 +7,6 @@
       <CodeGeneration compiler="Csc" warninglevel="4" optimize="True" 
unsafecodeallowed="False" generateoverflowchecks="True" 
mainclass="Mono.Addins.Database.SetupProcess" generatexmldocumentation="False" 
win32Icon="./" ctype="CSharpCompilerParameters" />
     </Configuration>
   </Configurations>
-  <DeployTargets>
-    <DeployTarget Name="Directory" ctype="DirectoryDeployTarget" />
-  </DeployTargets>
   <Contents>
     <File name="./AssemblyInfo.cs" subtype="Code" buildaction="Compile" />
     <File name="./Mono.Addins/ExtensionNode.cs" subtype="Code" 
buildaction="Compile" />
@@ -97,7 +94,5 @@
     <AsmRefVar Sync="True" Name="DLL_REFERENCES" />
     <ProjectRefVar Sync="True" Name="PROJECT_REFERENCES" />
   </MonoDevelop.Autotools.MakefileInfo>
-  <DeploymentInformation strategy="File">
-    <excludeFiles />
-  </DeploymentInformation>
+  <Deployment.LinuxDeployData scriptName="mono.addins" />
 </Project>
\ No newline at end of file

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to