trace_processor: remove RawCursor and associated virtual function calls.

This CL removes the indireciton layer introduced by RawCursor and the
associated extra virtual function calls it caused. Instead of hiding
the lifecycle of a cursor from implementors, we expose it and allow
implementors to choose what to do about it.

The easiest option for implementors is to reinit the cursor on every
filter query by calling their default constructor; this will leave
them with the current behaviour of the class.

We also inline RegisterTableInternal into RegisterTable and change
all the virtual function calls there into function calls on the
actual derived class. This is because we have the template type
so we essentially devirtualise the function calls using the template.

Change-Id: I1fb18deff3acab1615c88a82d5909c550dac2d95
18 files changed
tree: 0431effb7045864e79cc8c080b9c12eff589d4a4
  1. build_overrides/
  2. buildtools/
  3. debian/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. test/
  11. tools/
  12. ui/
  13. .clang-format
  14. .gitignore
  15. .gn
  16. .travis.yml
  17. Android.bp
  18. Android.bp.extras
  19. BUILD
  20. BUILD.extras
  21. BUILD.gn
  22. codereview.settings
  23. heapprofd.rc
  24. MODULE_LICENSE_APACHE2
  25. NOTICE
  26. OWNERS
  27. perfetto.rc
  28. PRESUBMIT.py
  29. README.chromium
  30. README.md
  31. TEST_MAPPING
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.