| 59 | |
| 60 | /// Hardware layout of the Dart `ObjectPool` object that `x27`/PP points at. |
| 61 | /// |
| 62 | /// Presence of this record is the adapter's assertion that `ObjectPoolEntry::index` |
| 63 | /// values live in the *hardware* index space, i.e. that a `ldr xN, [x27, #disp]` |
| 64 | /// resolves to `(disp - entries_offset) / word_size`. Adapters that only carve |
| 65 | /// strings out of the snapshot must leave it unset; without it the core refuses to |
| 66 | /// map pool references onto values instead of guessing. |
| 67 | #[derive(Debug, Clone, Copy, Serialize, Deserialize)] |
| 68 | pub struct PoolGeometry { |
| 69 | /// Byte offset of entry 0 from the PP base (0x10 on ARM64 AOT). |
| 70 | pub entries_offset: u64, |
| 71 | /// Stride between entries in bytes (8 on ARM64 AOT, even with compressed pointers). |
| 72 | pub word_size: u64, |
| 73 | } |
| 74 |
nothing calls this directly
no outgoing calls
no test coverage detected