SQLite

Check-in [bf9c86c74f]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:The return type used by the auto-extension entry points is 'int', not 'void'.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | callbackConv
Files: files | file ages | folders
SHA1: bf9c86c74f30136a106f37603a6c7dcc76caf41d
User & Date: mistachkin 2016-07-28 22:46:53.241
Context
2016-07-28
22:53
More compiler warning fixes for GCC related to the auto-extension mechanism. (check-in: b8218129bc user: mistachkin tags: callbackConv)
22:46
The return type used by the auto-extension entry points is 'int', not 'void'. (check-in: bf9c86c74f user: mistachkin tags: callbackConv)
22:38
Make sure all the auto-extension mechanism function signatures match up precisely. (check-in: 87ba69b5ca user: mistachkin tags: callbackConv)
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to src/loadext.c.
672
673
674
675
676
677
678
679

680
681
682
683
684
685
686
672
673
674
675
676
677
678

679
680
681
682
683
684
685
686







-
+









/*
** Register a statically linked extension that is automatically
** loaded by every new database connection.
*/
int sqlite3_auto_extension(
  void (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
  int (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
){
  int rc = SQLITE_OK;
#ifndef SQLITE_OMIT_AUTOINIT
  rc = sqlite3_initialize();
  if( rc ){
    return rc;
  }else
719
720
721
722
723
724
725
726

727
728
729
730
731
732
733
719
720
721
722
723
724
725

726
727
728
729
730
731
732
733







-
+







** is currently on the list.  If xInit is not on the list, then this
** routine is a no-op.
**
** Return 1 if xInit was found on the list and removed.  Return 0 if xInit
** was not on the list.
*/
int sqlite3_cancel_auto_extension(
  void (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
  int (*xInit)(sqlite3 *, char **, const sqlite3_api_routines *)
){
#if SQLITE_THREADSAFE
  sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER);
#endif
  int i;
  int n = 0;
  wsdAutoextInit;
Changes to src/sqlite.h.in.
5705
5706
5707
5708
5709
5710
5711
5712

5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726

5727
5728
5729
5730
5731
5732
5733
5705
5706
5707
5708
5709
5710
5711

5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725

5726
5727
5728
5729
5730
5731
5732
5733







-
+













-
+







** will be called more than once for each database connection that is opened.
**
** See also: [sqlite3_reset_auto_extension()]
** and [sqlite3_cancel_auto_extension()]
*/
typedef struct sqlite3_api_routines sqlite3_api_routines;
int sqlite3_auto_extension(
  void (*xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
  int (*xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
);

/*
** CAPI3REF: Cancel Automatic Extension Loading
**
** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the
** initialization routine X that was registered using a prior call to
** [sqlite3_auto_extension(X)].  ^The [sqlite3_cancel_auto_extension(X)]
** routine returns 1 if initialization routine X was successfully 
** unregistered and it returns 0 if X was not on the list of initialization
** routines.
*/
int sqlite3_cancel_auto_extension(
  void (*xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
  int (*xEntryPoint)(sqlite3 *, char **, const sqlite3_api_routines *)
);

/*
** CAPI3REF: Reset Automatic Extension Loading
**
** ^This interface disables all automatic extensions previously
** registered using [sqlite3_auto_extension()].
Changes to src/sqlite3ext.h.
247
248
249
250
251
252
253
254

255
256
257
258
259

260
261
262
263
264
265
266
247
248
249
250
251
252
253

254
255
256
257
258

259
260
261
262
263
264
265
266







-
+




-
+







  int (*stricmp)(const char*,const char*);
  int (*uri_boolean)(const char*,const char*,int);
  sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
  const char *(*uri_parameter)(const char*,const char*);
  char *(*vsnprintf)(int,char*,const char*,va_list);
  int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
  /* Version 3.8.7 and later */
  int (*auto_extension)(void(*)(sqlite3*,char**,const sqlite3_api_routines*));
  int (*auto_extension)(int(*)(sqlite3*,char**,const sqlite3_api_routines*));
  int (*bind_blob64)(sqlite3_stmt*,int,const void*,sqlite3_uint64,
                     void(*)(void*));
  int (*bind_text64)(sqlite3_stmt*,int,const char*,sqlite3_uint64,
                      void(*)(void*),unsigned char);
  int (*cancel_auto_extension)(void(*)(sqlite3*,char**,
  int (*cancel_auto_extension)(int(*)(sqlite3*,char**,
                                       const sqlite3_api_routines*));
  int (*load_extension)(sqlite3*,const char*,const char*,char**);
  void *(*malloc64)(sqlite3_uint64);
  sqlite3_uint64 (*msize)(void*);
  void *(*realloc64)(void*,sqlite3_uint64);
  void (*reset_auto_extension)(void);
  void (*result_blob64)(sqlite3_context*,const void*,sqlite3_uint64,