Small cleanup to folder item iteration

This commit is contained in:
Patrick Simpson 2017-02-07 14:45:34 +01:00
parent deee693293
commit b3f28f2857
2 changed files with 15 additions and 11 deletions

View File

@ -139,11 +139,7 @@ namespace Acacia.Stubs.OutlookWrappers
{ {
get get
{ {
if (_last != null) CleanLast();
{
_last.Dispose();
_last = default(ItemType);
}
_last = Mapping.Wrap<ItemType>(_enum.Current); _last = Mapping.Wrap<ItemType>(_enum.Current);
return _last; return _last;
} }
@ -157,12 +153,23 @@ namespace Acacia.Stubs.OutlookWrappers
} }
} }
private void CleanLast()
{
if (_last != null)
{
_last.Dispose();
_last = default(ItemType);
}
}
public void Dispose() public void Dispose()
{ {
CleanLast();
if (_enum != null) if (_enum != null)
{ {
if (_enum is IDisposable) if (_enum is IDisposable)
((IDisposable)_enum).Dispose(); ((IDisposable)_enum).Dispose();
ComRelease.Release(_enum);
_enum = null; _enum = null;
} }
if (_items != null) if (_items != null)
@ -174,16 +181,13 @@ namespace Acacia.Stubs.OutlookWrappers
public bool MoveNext() public bool MoveNext()
{ {
if (_last != null) CleanLast();
{
_last.Dispose();
_last = default(ItemType);
}
return _enum.MoveNext(); return _enum.MoveNext();
} }
public void Reset() public void Reset()
{ {
CleanLast();
_enum.Reset(); _enum.Reset();
} }
} }

View File

@ -59,7 +59,7 @@ namespace Acacia.Utils
{ {
if (!Enabled) if (!Enabled)
return; return;
if (o == null) if (o == null || !Marshal.IsComObject(o))
return; return;
if (Logger.Instance.IsLevelEnabled(LogLevel.TraceExtra)) if (Logger.Instance.IsLevelEnabled(LogLevel.TraceExtra))