aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen/Configuration.py
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2014-04-24 13:03:19 -0400
committerJosh Matthews <josh@joshmatthews.net>2014-05-03 14:18:31 -0400
commit91278da9dd55582401154e07f9eea34425a332c2 (patch)
treeccce9b42e8a6c54245e53620082efe0b9840eae1 /src/components/script/dom/bindings/codegen/Configuration.py
parent46a33b4b38666252245af5dd3a38bb6f57ff8a8e (diff)
downloadservo-91278da9dd55582401154e07f9eea34425a332c2.tar.gz
servo-91278da9dd55582401154e07f9eea34425a332c2.zip
Address review comments.
Diffstat (limited to 'src/components/script/dom/bindings/codegen/Configuration.py')
-rw-r--r--src/components/script/dom/bindings/codegen/Configuration.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/components/script/dom/bindings/codegen/Configuration.py b/src/components/script/dom/bindings/codegen/Configuration.py
index dc4daa18b26..1272867f542 100644
--- a/src/components/script/dom/bindings/codegen/Configuration.py
+++ b/src/components/script/dom/bindings/codegen/Configuration.py
@@ -128,15 +128,18 @@ class Descriptor(DescriptorProvider):
# Read the desc, and fill in the relevant defaults.
ifaceName = self.interface.identifier.name
+
+ # Callback types do not use JS smart pointers, so we should not use the
+ # built-in rooting mechanisms for them.
if self.interface.isCallback():
- nativeTypeDefault = "nsIDOM" + ifaceName
+ self.needsRooting = False
else:
- nativeTypeDefault = 'JS<%s>' % ifaceName
+ self.needsRooting = True
self.returnType = "Temporary<%s>" % ifaceName
self.argumentType = "JSRef<%s>" % ifaceName
self.memberType = "Root<'a, 'b, %s>" % ifaceName
- self.nativeType = desc.get('nativeType', nativeTypeDefault)
+ self.nativeType = desc.get('nativeType', 'JS<%s>' % ifaceName)
self.concreteType = desc.get('concreteType', ifaceName)
self.createGlobal = desc.get('createGlobal', False)
self.register = desc.get('register', True)