Okay, last time, I promise. :) I decided to test the robustness of the
whole reference-to-array concept in HDirect and I'm afraid to report
that it didn't come out all that well. It breaks down when the reference
is used as an [in] parameter instead of, or in addition to, an [out]
parameter. The problem is that the allocation of the reference pointer
and the array comes out all wrong. Also freeing the array and reference
pointer after the function is called isn't quite write either.

Some examples:
> void test([in] int size, [in,size_is(size)] int ** array);
> void test([in,out] int * size, [in,out,size_is(*size)] int ** array);

Okay, sending a reference to an array only as an [in] parameter doesn't
make much sense, but it's just an example. One thing to note in the
second example: the returned array is probably different than the sent
array; therefore _both_ arrays need to be deallocated after calling the
function.

- Michael Hobbs

Reply via email to