Skip to content

Rewrite bus connection

Carlos Garnacho requested to merge wip/carlosg/rewrite-bus-impl into master

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.
Edited by Carlos Garnacho

Merge request reports