When passing arrays of interfaces to an XPCOM method, we didn't know the

declared IID to obtain.  This prevented us detecting arrays of variants
and giving them the same special treatment normal Variants get.  Fix that.
Not part of the build.


git-svn-id: svn://10.0.0.236/trunk@215020 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mhammond%skippinet.com.au
2006-11-09 04:31:13 +00:00
parent 5f49ed82bf
commit 3dc130dacf
3 changed files with 50 additions and 33 deletions

View File

@@ -418,8 +418,10 @@ def test_derived_interface(c, test_flat = 0):
test_method(c.AppendVariant, (None, None), None)
test_method(c.SumVariants, ([],), None)
# Array's dont expose their interface, so we are unable to auto-wrap
# variant arrays, as they aren't aware if the IID of the array
test_method(c.SumVariants, ([1,2,3],), 6)
test_method(c.SumVariants, (['foo', 'bar'],), 'foobar')
# We previously had trouble working out the IID of interface arrays, so
# had to pass an explicitly wrapped variant - let's check that still works.
test_method(c.SumVariants, ([MakeVariant(1),MakeVariant(2),MakeVariant(3)],), 6)
test_method(c.SumVariants, ([MakeVariant('foo'), MakeVariant('bar')],), 'foobar')