From the main commit:
libtracker-sparql: Reimplement all bus connection objects
Historically the set of objects that provide the bus implementation
were written in Vala, this commit ends with that and rewrites all of
these objects in C. This is mostly a 1:1 port with one exception,
cursors are now based on TrackerDeserializer and input streams, they
were given a memory buffer previously.
The use of Vala here had a few indirect effects:
- Vala code could not be introspected by our gcovr infrastructure for
code coverage. This made this central piece of our library invisible
to coverage stats entirely.
- Since our library code and vala contend for the use of visibility
attributes for public functions, we ended up with a few symbols from
this Vala code that was never intended to be public API.
- The async code generated by Vala triggers reports about unreachable
code in Coverity. This has proven very imbued in Vala and hard to
fix without breaking something else there.
Moving away from Vala fixes all 3. For the sake of maintainability,
this is seen as a net improvement, despite the more verbose code and
the async operation daisy chaning at places. Now all untested code,
leaked symbols and dead code will be a responsibility of our own.