Merge branch 'master' into sprnet-1431

This commit is contained in:
Steve Bohlen
2012-12-22 14:19:09 -05:00

View File

@@ -88,7 +88,7 @@ namespace Spring.Reflection.Dynamic
private class IdentityTable : Hashtable
{
public IdentityTable()
{}
{ }
protected override int GetHash(object key)
{
@@ -118,14 +118,24 @@ namespace Spring.Reflection.Dynamic
state = (SafeMethodState)stateCache[methodInfo];
if (state == null)
{
state = new SafeMethodState(DynamicReflectionManager.CreateMethod(methodInfo),
new object[methodInfo.GetParameters().Length]
SafeMethodState newState = new SafeMethodState(DynamicReflectionManager.CreateMethod(methodInfo),
new object[methodInfo.GetParameters().Length]
);
stateCache[methodInfo] = state;
lock (stateCache.SyncRoot)
{
if (stateCache[methodInfo] == null)
{
state = newState;
stateCache[methodInfo] = state;
}
}
}
this.methodInfo = methodInfo;
}
/// <summary>
/// Invokes dynamic method.
/// </summary>