Monday, February 26, 2018

SprintDLL does not currently do arrays

I happened to notice recently that it's not possible to work with arbitrarily sized arrays of things in SprintDLL. You can allocate arbitrarily sized buffers, but the slot kind has to be a pointer. Though it is possible to avoid invalid cast errors by using the offset keyword of copyslot, the copied value goes after the pointer to the buffer, not actually in the buffer, so that either mangles the buffer pointer or writes to unallocated memory. For fixed size arrays, you can use block slots and the field keyword, but that gets unwieldy for large arrays and doesn't work at all for arbitrarily sized arrays. I will see about correcting this oversight.

No comments:

Post a Comment