diff --git a/newbinding/binding.py b/newbinding/binding.py index 8c58aa9..85b74e9 100644 --- a/newbinding/binding.py +++ b/newbinding/binding.py @@ -112,7 +112,7 @@ class Class(_Type): bases = 'capsule.Wrapper' if self.bases: bases = ', '.join(x.name for x in self.bases) - writer.println('@capsule.register_class') + writer.println('@capsule.register_class("%s")' % self.fullname) with writer.block('class %(clsname)s(%(bases)s):' % locals()): writer.println('_llvm_type_ = "%s"' % self.fullname) for enum in self.enums: @@ -151,7 +151,6 @@ class Class(_Type): writer.die_if_false(casted) return casted - class Enum(object): def __init__(self, *value_names): self.parent = None diff --git a/newbinding/capsule.py b/newbinding/capsule.py index d999e30..47c32fb 100644 --- a/newbinding/capsule.py +++ b/newbinding/capsule.py @@ -99,10 +99,11 @@ def unwrap(obj): return obj -def register_class(cls): - clsname = cls.__name__ - _pyclasses['llvm::%s' % clsname] = cls - return cls +def register_class(clsname): + def _wrapped(cls): + _pyclasses[clsname] = cls + return cls + return _wrapped class Wrapper(object):