You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by di...@apache.org on 2011/09/13 22:22:54 UTC

[Lucene.Net] svn commit: r1170331 - /incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/contrib/Snowball/Lucene.Net/Analysis/Snowball/SnowballFilter.cs

Author: digy
Date: Tue Sep 13 20:22:54 2011
New Revision: 1170331

URL: http://svn.apache.org/viewvc?rev=1170331&view=rev
Log:
[LUCENENET-412] Slight performance improvement for SnowballFilter

Modified:
    incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/contrib/Snowball/Lucene.Net/Analysis/Snowball/SnowballFilter.cs

Modified: incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/contrib/Snowball/Lucene.Net/Analysis/Snowball/SnowballFilter.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/contrib/Snowball/Lucene.Net/Analysis/Snowball/SnowballFilter.cs?rev=1170331&r1=1170330&r2=1170331&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/contrib/Snowball/Lucene.Net/Analysis/Snowball/SnowballFilter.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/contrib/Snowball/Lucene.Net/Analysis/Snowball/SnowballFilter.cs Tue Sep 13 20:22:54 2011
@@ -37,7 +37,8 @@ namespace Lucene.Net.Analysis.Snowball
 		private static readonly System.Object[] EMPTY_ARGS = new System.Object[0];
 		
 		private SnowballProgram stemmer;
-		private System.Reflection.MethodInfo stemMethod;
+		private delegate bool StemMethodDelegate();
+        private StemMethodDelegate stemMethod;
 		
 		/// <summary>Construct the named stemming filter.
 		/// 
@@ -53,7 +54,7 @@ namespace Lucene.Net.Analysis.Snowball
 				System.Type stemClass = System.Type.GetType("SF.Snowball.Ext." + name + "Stemmer");
 				stemmer = (SnowballProgram) System.Activator.CreateInstance(stemClass);
 				// why doesn't the SnowballProgram class have an (abstract?) stem method?
-				stemMethod = stemClass.GetMethod("Stem", (new System.Type[0] == null) ? new System.Type[0] : (System.Type[]) new System.Type[0]);
+				stemMethod = (StemMethodDelegate)Delegate.CreateDelegate(typeof(StemMethodDelegate),stemmer,stemClass.GetMethod("Stem", new Type[0])); 
 			}
 			catch (System.Exception e)
 			{
@@ -70,7 +71,7 @@ namespace Lucene.Net.Analysis.Snowball
 			stemmer.SetCurrent(token.TermText());
 			try
 			{
-				stemMethod.Invoke(stemmer, (System.Object[]) EMPTY_ARGS);
+                stemMethod(); 
 			}
 			catch (System.Exception e)
 			{