Fixed condition on IEnumFromCom where TryGet looped forever.

pull/83/head
David Hall 2019-10-23 12:06:32 -06:00
parent 376b4576ea
commit 33765e40ee
1 changed files with 6 additions and 5 deletions

View File

@ -123,7 +123,7 @@ namespace Vanara.Collections
{ {
var res = new TItem[1]; var res = new TItem[1];
item = default; item = default;
if (cnext(1, res, out var ret).Failed) if (cnext(1, res, out var ret) != HRESULT.S_OK)
return false; return false;
item = res[0]; item = res[0];
return true; return true;
@ -239,7 +239,8 @@ namespace Vanara.Collections
public Enumerator(IEnumFromNext<TItem> ienum) public Enumerator(IEnumFromNext<TItem> ienum)
{ {
this.ienum = ienum; ((IEnumerator)this).Reset(); this.ienum = ienum;
((IEnumerator)this).Reset();
} }
public TItem Current { get; private set; } public TItem Current { get; private set; }
@ -251,15 +252,15 @@ namespace Vanara.Collections
bool IEnumerator.MoveNext() bool IEnumerator.MoveNext()
{ {
if (ienum == null || !ienum.next(out var p)) return false; if (ienum == null || !ienum.next(out var p))
return false;
Current = p; Current = p;
return true; return true;
} }
void IEnumerator.Reset() void IEnumerator.Reset()
{ {
if (ienum == null) return; ienum?.reset();
ienum.reset();
Current = default; Current = default;
} }
} }