eolian: remove/add APIs and clean up implements system
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Mon, 16 Jan 2017 14:51:11 +0000 (15:51 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Mon, 16 Jan 2017 14:55:06 +0000 (15:55 +0100)
commit35c5e892695ad4e2169003c0dd2a00db8c1679a4
tree0fec985aa08f720b30fa0fbab5181fef6cdb156c
parentfbad285eca8bde68de0158395b346bdac25dc3ec
eolian: remove/add APIs and clean up implements system

As there is no need to have separate is_auto, is_empty and
is_pure_virtual for functions and implements (each function has
its own base implement by default) I removed the function ones.
Instead, I added a way to retrieve a function's base implement
so that you can instead do the checks on the implement even when
you only have the function.

I also moved base implement build directly into the parser instead
of the database filler. That allows for significant cleanup. I
also removed distinction of implement pointers in Eolian_Function
for get and set as implements now always contain an entire thing
so the pointer was always the same anyway.

Things should still behave more or less the same, but ordering
of generated functions has changed because ordering of implements
has changed.
14 files changed:
src/bin/eolian/sources.c
src/bindings/luajit/eolian.lua
src/lib/eolian/Eolian.h
src/lib/eolian/database_fill.c
src/lib/eolian/database_function_api.c
src/lib/eolian/eo_parser.c
src/lib/eolian/eolian_database.h
src/scripts/elua/apps/docgen/doctree.lua
src/tests/eolian/data/docs_ref.h
src/tests/eolian/data/docs_ref_legacy.h
src/tests/eolian/data/object_impl_add_ref.c
src/tests/eolian/data/object_impl_ref.c
src/tests/eolian/data/override_ref.c
src/tests/eolian/eolian_parsing.c