you guys know that if there is sufficient IL in a method the JIT will just refuse to inline it even
you guys know that if there is sufficient IL in a method the JIT will just refuse to inline it even with AggressiveInlining
Quoted by kaijellinghaus#0000
Ptr<T> type instead of an array, I would be very confusedPtr<T> causes more problems than it solvesQuoted by kaijellinghaus#0000
const char** to be specificT*[] helps with nothingROSpan<Span<T>> is just not valid// However, there are some caveats to this:
// - We use local functions in addition to the generic typeof(T) == typeof(whatever) pattern to work around some
// unfortunate inlining issues in platforms older that .NET 5, where the inliner was going over budget despite
// aggressively inlined functions supposedly being exempt from budgeting.
// See also: https://github.com/dotnet/runtime/issues/38106Ptr<T>Ptr<T>const char**T*[]ROSpan<Span<T>>void glDoStuff<T>(T[] myArray) where T : unmanaged {
fixed (void* arrPtr = myArray)
glDoStuff((nuint) myArray.Length, arrPtr);
}