--- In [email protected], "entropyreduction"
<alancampbelllists+ya...@...> wrote:
>
> Hi bruce,
>
> local hVecChildren = hao.get_accessible_children()
>
> get_accessible_children creates a vecotr and stufs it full, partly with
> hanldes to com objects.
>
> I assume when hVecChildren is destroyed (explicitly or by going out of
> scope), any handles stored in hVecChildren will _not_ be released.
> Up to user to do that explicitly.
Not true, at least if code is working as intended.
The vec destroy routine eventually calls this for each element in the vector
static void DeleteVec(int vi)
{
int i;
LPSTR p;
for (i=0; i<g_v[vi].capacity; i++)
if (p=*(g_v[vi].base+i))
{
(g_ppsv->FreeIfHandle)(p);
free(p);
*(g_v[vi].base+i)=NULL;
}
g_v[vi].length=0;
}
FreeIfHandle is a PowerPro services that checks to see if p points to a handle
from a registered service, and if so calls registered callbacvk for freeing
that handle.
I have not checked, but I am pretty sure maps are the same.