gdal/gdal-1.11.1-sqlite-crash.patch
2014-12-06 03:28:35 +01:00

66 lines
2.5 KiB
Diff

Index: /trunk/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp
===================================================================
--- /trunk/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp (revision 27942)
+++ /trunk/gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp (revision 27949)
@@ -36,4 +36,23 @@
#ifdef HAVE_SQLITE_VFS
+/************************************************************************/
+/* OGR2SQLITE_Register() */
+/************************************************************************/
+
+CPL_C_START
+int CPL_DLL OGR2SQLITE_static_register (sqlite3* hDB, char **pzErrMsg, void* pApi);
+CPL_C_END
+
+/* We call this function so that each time a db is created, */
+/* OGR2SQLITE_static_register is called, to initialize the sqlite3_api */
+/* structure with the right pointers. */
+/* We need to declare this function before including sqlite3ext.h, since */
+/* sqlite 3.8.7, sqlite3_auto_extension can be a macro (#5725) */
+
+void OGR2SQLITE_Register()
+{
+ sqlite3_auto_extension ((void (*)(void)) OGR2SQLITE_static_register);
+}
+
#define VIRTUAL_OGR_DYNAMIC_EXTENSION_ENABLED
//#define DEBUG_OGR2SQLITE
@@ -2403,16 +2422,11 @@
/************************************************************************/
-CPL_C_START
-int CPL_DLL OGR2SQLITE_static_register (sqlite3 * hDB, char **pzErrMsg,
- const sqlite3_api_routines * pApi);
-CPL_C_END
-
#ifndef WIN32
extern const struct sqlite3_api_routines OGRSQLITE_static_routines;
#endif
-int OGR2SQLITE_static_register (sqlite3 * hDB, char **pzErrMsg,
- const sqlite3_api_routines * pApi)
-{
+int OGR2SQLITE_static_register (sqlite3 * hDB, char **pzErrMsg, void * _pApi)
+{
+ const sqlite3_api_routines * pApi = (const sqlite3_api_routines * )_pApi;
#ifndef WIN32
if( pApi->create_module == NULL )
@@ -2450,16 +2464,3 @@
}
-/************************************************************************/
-/* OGR2SQLITE_Register() */
-/************************************************************************/
-
-/* We call this function so that each time a db is created, */
-/* OGR2SQLITE_static_register is called, to initialize the sqlite3_api */
-/* structure with the right pointers. */
-
-void OGR2SQLITE_Register()
-{
- sqlite3_auto_extension ((void (*)(void)) OGR2SQLITE_static_register);
-}
-
#endif // HAVE_SQLITE_VFS