You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 5051074
Browse filesBrowse the repository at this point in the historyBrowse files
Read an array of scalars at the scalar's own width
An array MEOS answers is read at eight bytes a step whenever `Marshal.Copy`
carries no overload for its element — the fallback for an array of POINTERS,
reached by anything else. `tbool_values` answers a `bool *`, one byte an
element, so the walk runs off the end of the array and hands back the values'
own bytes as addresses; `geo_cluster_dbscan` answers a `uint32_t *` and reads
two cluster ids at a time as one number.
An element the layer knows the width of is read at that width: a `bool` a byte
at a time and true when non-zero, a `uint` four, a `ulong` eight, a `float`
through its bits. The pointer walk stays what it is for — an array of pointers
to MEOS values — and `Marshal.Copy` keeps the elements it has an overload for.
The object layer hands on an array of scalars whichever scalar it holds, rather
than the four spellings it named, so `TBool.Values` answers `bool[]` and
`Geo.ClusterDbscan` a `uint[]`. 1337 methods against 1335, 23 deferred against
25.
Two tests read the values back: a temporal boolean answers the two distinct
booleans it takes, and a temporal float the two doubles — the second the control
that `Marshal.Copy` is untouched.
0 commit comments