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
FEATURE_FUNCPTRS/plain was introduced in commit 9adcbfc to workaround a bug in iOS AOT compiler. That bug was fixed in .NET 7 and .NET 8 and so the workaround is no longer necessary. We should use FEATURE_FUNCPTRS/callingconv again for generic .NET 6+ platforms.
The issue is that compiling a unit test assembly against generic net6+ target and referencing SQLitePCLRaw.provider.e_sqlite3 on Windows results in using the generic net6.0 version from the NuGet package. That assembly version is missing the CDecl calling convention decorations on UnmanagedCallersOnly attributes and thus results in incorrect calling convention used on x86 platforms. This can be observed when using sqlite3_create_function to register custom functions since the callbacks corrupt the stack and result in access violation.
The text was updated successfully, but these errors were encountered:
FEATURE_FUNCPTRS/plain
was introduced in commit 9adcbfc to workaround a bug in iOS AOT compiler. That bug was fixed in .NET 7 and .NET 8 and so the workaround is no longer necessary. We should useFEATURE_FUNCPTRS/callingconv
again for generic .NET 6+ platforms.The issue is that compiling a unit test assembly against generic net6+ target and referencing
SQLitePCLRaw.provider.e_sqlite3
on Windows results in using the genericnet6.0
version from the NuGet package. That assembly version is missing theCDecl
calling convention decorations onUnmanagedCallersOnly
attributes and thus results in incorrect calling convention used on x86 platforms. This can be observed when usingsqlite3_create_function
to register custom functions since the callbacks corrupt the stack and result in access violation.The text was updated successfully, but these errors were encountered: