mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 16:22:00 +00:00
028d69f48f
Previously we were using a `Pin` to create a memory location for the C++ MarkerSchema object in Rust, then we were creating this object inside that location. To make sure that this object doesn't move around, we were using `Pin`. But `Pin` only guarantees when it's managing a Rust object and doesn't really guarantee when managing a foreign object like MarkerSchema from C++. So this was creating an undefined behavior where it was surfacing in one of our tests. This patch changing this behavior, so now C++ side is fully responsible of constructing the object in the heap and destructing when we are done using it. I'm not so sure why this gets fixed when we pause the profiler before we capture the profile, but this seems to fix the issue. Differential Revision: https://phabricator.services.mozilla.com/D223766 |
||
---|---|---|
.. | ||
macros | ||
src | ||
build.rs | ||
Cargo.toml | ||
cbindgen.toml | ||
extra-bindgen-flags.in | ||
README.md |
Gecko Profiler API for Rust
This crate is the collection of all the API endpoints for Gecko Profiler. Please use this crate instead of using raw FFI calls.
See the module documentations for more information about the specific API endpoints.