public override int get_VecSize(int hvo, int tag)
{
ITestItem tester;
if (!m_filterFlids.TryGetValue(tag, out tester))
return base.get_VecSize(hvo, tag);
int chvoReal = BaseSda.get_VecSize(hvo, tag);
using (ArrayPtr arrayPtr = MarshalEx.ArrayToNative<int>(chvoReal))
{
BaseSda.VecProp(hvo, tag, chvoReal, out chvoReal, arrayPtr);
int[] candidates = MarshalEx.NativeToArray<int>(arrayPtr, chvoReal);
int iresult = 0;
for (int icandidate = 0; icandidate < candidates.Length; icandidate++)
{
if (tester.Test(candidates[icandidate], BaseSda, m_validHvos))
iresult++;
}
return iresult;
}
}