Fix panic at 'SQLite API not initialized or SQLite feature omitted'

`to_sqlite_error` needs `sqlite3_malloc`

```
sqlite> .log on
sqlite> .load target/debug/examples/libloadable_extension.so
Error: error during initialization: SQLite version mismatch: 3014000 < 3042000
```
This commit is contained in:
gwenn
2023-07-14 15:56:43 +02:00
parent c8858bbb68
commit f9d69410ef
5 changed files with 13 additions and 18 deletions

View File

@@ -7463,9 +7463,7 @@ pub unsafe fn sqlite3_is_interrupted(arg1: *mut sqlite3) -> ::std::os::raw::c_in
pub unsafe fn rusqlite_extension_init2(
p_api: *mut sqlite3_api_routines,
) -> ::std::result::Result<(), crate::InitError> {
if p_api.is_null() {
return Err(crate::InitError::NullApiPointer);
}
__SQLITE3_MALLOC.store((*p_api).malloc, ::atomic::Ordering::Release);
if let Some(fun) = (*p_api).libversion_number {
let version = fun();
if SQLITE_VERSION_NUMBER > version {
@@ -7567,7 +7565,6 @@ pub unsafe fn rusqlite_extension_init2(
__SQLITE3_LIBVERSION.store((*p_api).libversion, ::atomic::Ordering::Release);
__SQLITE3_LIBVERSION_NUMBER
.store((*p_api).libversion_number, ::atomic::Ordering::Release);
__SQLITE3_MALLOC.store((*p_api).malloc, ::atomic::Ordering::Release);
__SQLITE3_OPEN.store((*p_api).open, ::atomic::Ordering::Release);
__SQLITE3_OPEN16.store((*p_api).open16, ::atomic::Ordering::Release);
__SQLITE3_PREPARE.store((*p_api).prepare, ::atomic::Ordering::Release);