Support variadic interface arguments (fixes #8159)

We use a RootedVec value in codegen, of which we use the `r()` method to
pass `&[&T]` to the interface methods.
This commit is contained in:
Anthony Ramine 2015-10-25 22:43:13 +01:00
parent e66a361e08
commit acb13dc899
7 changed files with 105 additions and 63 deletions

View file

@ -157,14 +157,12 @@ class Descriptor(DescriptorProvider):
ty = "%sBinding::%s" % (ifaceName, ifaceName)
self.returnType = "Rc<%s>" % ty
self.argumentType = "???"
self.memberType = "???"
self.nativeType = ty
else:
self.needsRooting = True
self.returnType = "Root<%s>" % ifaceName
self.argumentType = "&%s" % ifaceName
self.memberType = "Root<%s>" % ifaceName
self.nativeType = "Root<%s>" % ifaceName
self.nativeType = "*const %s" % ifaceName
self.concreteType = ifaceName
self.register = desc.get('register', True)