yeah I'm worried if we go this route we will accidentally make a GC hole
yeah I'm worried if we go this route we will accidentally make a GC hole
ref PtrType<sbyte> into PtrType<Ptr<sbyte>> (so I guess it should be AsConstPtr2D()) and the given ref is just stored as-is and the "the inner is also a ptr" is just tracked by the compiler via genericsRefMut<sbyte> type at runtime? It's just a ref byte on the inside (or a readonly ref byte in this case, but same same)SilkMarshal.JaggedArrayToPointerArray). if InteriorRef is actually a ref ConstPtr<int>, the referencee will continue to be tracked and ergo the encapsulated reference will continue to be trackedPtrType/ConstPtrType either given you can't put them on the heap eitherPtrType<Ptr<int>> the inner Ptr may reference a field on the heap, which presumably will be untracked when we go from PtrType<int> to Ptr<int> (or whatever we reinterpret it to)Ptr<T>.RefType this[nuint idx]MutRefMutGet cause that'd get uglychar* description = NULL;
if (glfwGetError(&description)) {
printf(description);
}PtrType<schar> marshalMyString = new string("chonkballs".ToCharArray()); // make a new string bc the string literal is in the constant pool
PtrType<Ptr<schar>> ptrToThatVariable = marshalMyString.PtrTo();
for (var i = 0; i < 5; i++)
ptrToThatVariable.Get(0, i);