ctypeslib icon indicating copy to clipboard operation
ctypeslib copied to clipboard

DuplicateDefinitionException: 'register: struct__IO_marker already existed: struct__IO_marker'

Open XVilka opened this issue 4 years ago • 1 comments

genbind.py in gen_python_bindings(outdir, path)
    222     cparser = clangparser.Clang_Parser(flags=clang_opts)
    223     print("Parsing {0:s} file...\n".format(path))
--> 224     cparser.parse(path)
    225     items = cparser.get_result()
    226     if items is None:

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/clangparser.py in parse(self, filename)
    118         root = self.tu.cursor
    119         for node in root.get_children():
--> 120             self.startElement(node)
    121         return
    122 

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/clangparser.py in startElement(self, node)
    157         # build stuff.
    158         try:
--> 159             stop_recurse = self.parse_cursor(node)
    160             # Signature of parse_cursor is:
    161             # if the fn returns True, do not recurse into children.

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/clangparser.py in parse_cursor(self, cursor)
    271     def parse_cursor(self, cursor):
    272         """Forward parsing calls to dedicated CursorKind Handlder"""
--> 273         return self.cursorkind_handler.parse_cursor(cursor)
    274 
    275     def parse_cursor_type(self, _cursor_type):

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/cursorhandler.py in parse_cursor(self, cursor)
     35     def parse_cursor(self, cursor):
     36         mth = getattr(self, cursor.kind.name)
---> 37         return mth(cursor)
     38 
     39         ##########################################################################

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/util.py in fn(*args, **kwargs)
    117         log.debug("%s: displayname:'%s'",func.__name__, name)
    118         # print 'calling {}'.format(func.__name__)
--> 119         return func(*args, **kwargs)
    120     return fn
    121 

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/cursorhandler.py in STRUCT_DECL(self, cursor, num)
    561         Its a wrapper to _record_decl.
    562         """
--> 563         return self._record_decl(cursor, typedesc.Structure, num)
    564 
    565     @log_entity

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/cursorhandler.py in _record_decl(self, cursor, _output_type, num)
    601             self.set_location(obj, cursor)
    602             self.set_comment(obj, cursor)
--> 603             return self.register(name, obj)
    604 
    605         elif size < 0 or align < 0:

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/handler.py in register(self, name, obj)
     42 
     43     def register(self, name, obj):
---> 44         return self.parser.register(name, obj)
     45 
     46     def get_registered(self, name):

~/.local/lib/python3.8/site-packages/ctypeslib2-2.2.2-py3.8.egg/ctypeslib/codegen/clangparser.py in register(self, name, obj)
    178             log.debug('register: %s already existed: %s', name, obj.name)
    179             # code.interact(local=locals())
--> 180             raise DuplicateDefinitionException(
    181                 'register: %s already existed: %s' % (name, obj.name))
    182         log.debug('register: %s ', name)

DuplicateDefinitionException: 'register: struct__IO_marker already existed: struct__IO_marker'

XVilka avatar May 21 '20 07:05 XVilka

@XVilka can you share the relevant source file ?

trolldbois avatar Feb 17 '21 19:02 trolldbois