@@ -1,8 +1,8 @@
1 1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/******************************************************************************
2 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This file is an amalgamation of many separate C source files from SQLite
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** version 3.7.13. By combining all the individual C code files into this
3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** version 3.7.14. By combining all the individual C code files into this
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** single large file, the entire code can be compiled as a single translation
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** unit. This allows many compilers to do optimizations that would not be
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** possible if the files were compiled separately. Performance improvements
7 7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of 5% or more are commonly seen when SQLite is compiled as a single
8 8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** translation unit.
@@ -387,10 +387,11 @@
387 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Exactly one of the following macros must be defined in order to
388 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** specify which memory allocation subsystem to use.
389 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
390 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQLITE_SYSTEM_MALLOC // Use normal system malloc()
391 391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQLITE_WIN32_MALLOC // Use Win32 native heap API
392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_ZERO_MALLOC // Use a stub allocator that always fails
392 393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQLITE_MEMDEBUG // Debugging version of system malloc()
393 394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
394 395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** On Windows, if the SQLITE_WIN32_MALLOC_VALIDATE macro is defined and the
395 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** assert() macro is enabled, each call into the Win32 native heap subsystem
396 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will cause HeapValidate to be called. If heap validation should fail, an
@@ -400,15 +401,23 @@
400 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pared it down to just these three.)
401 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
402 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If none of the above are defined, then set SQLITE_SYSTEM_MALLOC as
403 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the default.
404 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_SYSTEM_MALLOC)+defined(SQLITE_WIN32_MALLOC)+defined(SQLITE_MEMDEBUG)>1
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # error "At most one of the following compile-time configuration options\
407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- is allows: SQLITE_SYSTEM_MALLOC, SQLITE_WIN32_MALLOC, SQLITE_MEMDEBUG"
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(SQLITE_SYSTEM_MALLOC) \
407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + defined(SQLITE_WIN32_MALLOC) \
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + defined(SQLITE_ZERO_MALLOC) \
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + defined(SQLITE_MEMDEBUG)>1
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # error "Two or more of the following compile-time configuration options\
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ are defined but at most one is allowed:\
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_SYSTEM_MALLOC, SQLITE_WIN32_MALLOC, SQLITE_MEMDEBUG,\
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_ZERO_MALLOC"
408 414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_SYSTEM_MALLOC)+defined(SQLITE_WIN32_MALLOC)+defined(SQLITE_MEMDEBUG)==0
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(SQLITE_SYSTEM_MALLOC) \
416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + defined(SQLITE_WIN32_MALLOC) \
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + defined(SQLITE_ZERO_MALLOC) \
418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ + defined(SQLITE_MEMDEBUG)==0
410 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_SYSTEM_MALLOC 1
411 420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
412 421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
413 422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
414 423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If SQLITE_MALLOC_SOFT_LIMIT is not zero, then try to keep the
@@ -662,13 +671,13 @@
662 671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
663 672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** See also: [sqlite3_libversion()],
664 673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
665 674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite_version()] and [sqlite_source_id()].
666 675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_VERSION "3.7.13"
668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_VERSION_NUMBER 3007013
669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2012-06-07 07:24:04 506008f000ba4af0b35da023b8c52f7a3f5033bd"
676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_VERSION "3.7.14"
677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_VERSION_NUMBER 3007014
678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2012-06-21 17:21:52 d5e6880279210ca63e2d5e7f6d009f30566f1242"
670 679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
671 680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
672 681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Run-Time Library Version Numbers
673 682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_version, sqlite3_sourceid
674 683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -774,11 +783,12 @@
774 783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
775 784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Each open SQLite database is represented by a pointer to an instance of
776 785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the opaque structure named "sqlite3". It is useful to think of an sqlite3
777 786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pointer as an object. The [sqlite3_open()], [sqlite3_open16()], and
778 787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_open_v2()] interfaces are its constructors, and [sqlite3_close()]
779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is its destructor. There are many other interfaces (such as
788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and [sqlite3_close_v2()] are its destructors. There are many other
789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** interfaces (such as
780 790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_prepare_v2()], [sqlite3_create_function()], and
781 791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_busy_timeout()] to name but three) that are methods on an
782 792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3 object.
783 793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
784 794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct sqlite3 sqlite3;
@@ -821,32 +831,50 @@
821 831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
822 832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
823 833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
824 834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Closing A Database Connection
825 835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^The sqlite3_close() routine is the destructor for the [sqlite3] object.
827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^Calls to sqlite3_close() return SQLITE_OK if the [sqlite3] object is
828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** successfully destroyed and all associated resources are deallocated.
836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^The sqlite3_close() and sqlite3_close_v2() routines are destructors
837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for the [sqlite3] object.
838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^Calls to sqlite3_close() and sqlite3_close_v2() return SQLITE_OK if
839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the [sqlite3] object is successfully destroyed and all associated
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** resources are deallocated.
829 841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Applications must [sqlite3_finalize | finalize] all [prepared statements]
831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and [sqlite3_blob_close | close] all [BLOB handles] associated with
832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the [sqlite3] object prior to attempting to close the object. ^If
842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^If the database connection is associated with unfinalized prepared
843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** statements or unfinished sqlite3_backup objects then sqlite3_close()
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** will leave the database connection open and return [SQLITE_BUSY].
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^If sqlite3_close_v2() is called with unfinalized prepared statements
846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and unfinished sqlite3_backups, then the database connection becomes
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** an unusable "zombie" which will automatically be deallocated when the
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** last prepared statement is finalized or the last sqlite3_backup is
849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** finished. The sqlite3_close_v2() interface is intended for use with
850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** host languages that are garbage collected, and where the order in which
851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** destructors are called is arbitrary.
852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Applications should [sqlite3_finalize | finalize] all [prepared statements],
854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [sqlite3_blob_close | close] all [BLOB handles], and
855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [sqlite3_backup_finish | finish] all [sqlite3_backup] objects associated
856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with the [sqlite3] object prior to attempting to close the object. ^If
833 857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_close() is called on a [database connection] that still has
834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** outstanding [prepared statements] or [BLOB handles], then it returns
835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_BUSY.
858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** outstanding [prepared statements], [BLOB handles], and/or
859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** [sqlite3_backup] objects then it returns SQLITE_OK but the deallocation
860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of resources is deferred until all [prepared statements], [BLOB handles],
861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and [sqlite3_backup] objects are also destroyed.
836 862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^If [sqlite3_close()] is invoked while a transaction is open,
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^If an [sqlite3] object is destroyed while a transaction is open,
838 864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the transaction is automatically rolled back.
839 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The C parameter to [sqlite3_close(C)] must be either a NULL
866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The C parameter to [sqlite3_close(C)] and [sqlite3_close_v2(C)]
867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** must be either a NULL
841 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pointer or an [sqlite3] object pointer obtained
842 869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** from [sqlite3_open()], [sqlite3_open16()], or
843 870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_open_v2()], and not previously closed.
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ^Calling sqlite3_close() with a NULL pointer argument is a
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** harmless no-op.
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ^Calling sqlite3_close() or sqlite3_close_v2() with a NULL pointer
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** argument is a harmless no-op.
846 873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_close(sqlite3 *);
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_close(sqlite3*);
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_close_v2(sqlite3*);
848 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
849 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
850 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The type for a callback function.
851 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This is legacy and deprecated. It is included for historical
852 880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** compatibility and is not documented.
@@ -5013,15 +5041,16 @@
5013 5041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Name Of The Folder Holding Database Files
5014 5042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5015 5043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(If this global variable is made to point to a string which is
5016 5044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the name of a folder (a.k.a. directory), then all database files
5017 5045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** specified with a relative pathname and created or accessed by
5018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLite when using a built-in [sqlite3_vfs | VFS] will be assumed
5046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLite when using a built-in windows [sqlite3_vfs | VFS] will be assumed
5019 5047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to be relative to that directory.)^ ^If this variable is a NULL
5020 5048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pointer, then SQLite assumes that all database files specified
5021 5049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** with a relative pathname are relative to the current directory
5022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** for the process.
5050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** for the process. Only the windows VFS makes use of this global
5051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** variable; it is ignored by the unix VFS.
5023 5052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5024 5053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Changing the value of this variable while a database connection is
5025 5054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** open can result in a corrupt database.
5026 5055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
5027 5056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** It is not safe to read or modify this variable in more than one
@@ -6048,21 +6077,20 @@
6048 6077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of these mutex routines. An appropriate implementation
6049 6078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** is selected automatically at compile-time. ^(The following
6050 6079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** implementations are available in the SQLite core:
6051 6080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
6052 6081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <ul>
6053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_OS2
6054 6082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <li> SQLITE_MUTEX_PTHREADS
6055 6083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <li> SQLITE_MUTEX_W32
6056 6084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** <li> SQLITE_MUTEX_NOOP
6057 6085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** </ul>)^
6058 6086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
6059 6087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^The SQLITE_MUTEX_NOOP implementation is a set of routines
6060 6088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that does no real locking and is appropriate for use in
6061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a single-threaded application. ^The SQLITE_MUTEX_OS2,
6062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_MUTEX_PTHREADS, and SQLITE_MUTEX_W32 implementations
6063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are appropriate for use on OS/2, Unix, and Windows.
6089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a single-threaded application. ^The SQLITE_MUTEX_PTHREADS and
6090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_MUTEX_W32 implementations are appropriate for use on Unix
6091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** and Windows.
6064 6092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
6065 6093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** ^(If SQLite is compiled with the SQLITE_MUTEX_APPDEF preprocessor
6066 6094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** macro defined (with "-DSQLITE_MUTEX_APPDEF=1"), then no mutex
6067 6095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** implementation is included with the library. In this case the
6068 6096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** application must supply a custom mutex implementation using the
@@ -9287,22 +9315,20 @@
9287 9315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define _SQLITE_OS_H_
9288 9316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9289 9317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
9290 9318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Figure out if we are dealing with Unix, Windows, or some other
9291 9319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** operating system. After the following block of preprocess macros,
9292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** all of SQLITE_OS_UNIX, SQLITE_OS_WIN, SQLITE_OS_OS2, and SQLITE_OS_OTHER
9320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** all of SQLITE_OS_UNIX, SQLITE_OS_WIN, and SQLITE_OS_OTHER
9293 9321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** will defined to either 1 or 0. One of the four will be 1. The other
9294 9322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** three will be 0.
9295 9323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
9296 9324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(SQLITE_OS_OTHER)
9297 9325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# if SQLITE_OS_OTHER==1
9298 9326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# undef SQLITE_OS_UNIX
9299 9327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_UNIX 0
9300 9328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# undef SQLITE_OS_WIN
9301 9329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_WIN 0
9302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # undef SQLITE_OS_OS2
9303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS_OS2 0
9304 9330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# else
9305 9331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# undef SQLITE_OS_OTHER
9306 9332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# endif
9307 9333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
9308 9334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !defined(SQLITE_OS_UNIX) && !defined(SQLITE_OS_OTHER)
@@ -9309,23 +9335,16 @@
9309 9335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_OTHER 0
9310 9336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# ifndef SQLITE_OS_WIN
9311 9337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__BORLANDC__)
9312 9338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_WIN 1
9313 9339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_UNIX 0
9314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS_OS2 0
9315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # elif defined(__EMX__) || defined(_OS2) || defined(OS2) || defined(_OS2_) || defined(__OS2__)
9316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS_WIN 0
9317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS_UNIX 0
9318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS_OS2 1
9319 9340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# else
9320 9341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_WIN 0
9321 9342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_UNIX 1
9322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS_OS2 0
9323 9343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# endif
9324 9344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# else
9325 9345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_UNIX 0
9326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS_OS2 0
9327 9346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# endif
9328 9347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
9329 9348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# ifndef SQLITE_OS_WIN
9330 9349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_OS_WIN 0
9331 9350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# endif
@@ -9333,25 +9352,10 @@
9333 9352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9334 9353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_OS_WIN
9335 9354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# include <windows.h>
9336 9355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
9337 9356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SQLITE_OS_OS2
9339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # if (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3) && defined(OS2_HIGH_MEMORY)
9340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # include <os2safe.h> /* has to be included before os2.h for linking to work */
9341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # endif
9342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define INCL_DOSDATETIME
9343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define INCL_DOSFILEMGR
9344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define INCL_DOSERRORS
9345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define INCL_DOSMISC
9346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define INCL_DOSPROCESS
9347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define INCL_DOSMODULEMGR
9348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define INCL_DOSSEMAPHORES
9349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # include <os2.h>
9350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # include <uconv.h>
9351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
9352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
9353 9357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
9354 9358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Determine if we are dealing with Windows NT.
9355 9359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
9356 9360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** We ought to be able to determine if we are compiling for win98 or winNT
9357 9361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** using the _WIN32_WINNT macro as follows:
@@ -9617,23 +9621,19 @@
9617 9621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** start-time.
9618 9622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
9619 9623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQLITE_MUTEX_PTHREADS For multi-threaded applications on Unix.
9620 9624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
9621 9625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQLITE_MUTEX_W32 For multi-threaded applications on Win32.
9622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
9623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_MUTEX_OS2 For multi-threaded applications on OS/2.
9624 9626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
9625 9627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if !SQLITE_THREADSAFE
9626 9628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_MUTEX_OMIT
9627 9629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
9628 9630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if SQLITE_THREADSAFE && !defined(SQLITE_MUTEX_NOOP)
9629 9631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# if SQLITE_OS_UNIX
9630 9632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_MUTEX_PTHREADS
9631 9633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# elif SQLITE_OS_WIN
9632 9634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_MUTEX_W32
9633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # elif SQLITE_OS_OS2
9634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_MUTEX_OS2
9635 9635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# else
9636 9636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# define SQLITE_MUTEX_NOOP
9637 9637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# endif
9638 9638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
9639 9639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -9950,10 +9950,11 @@
9950 9950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_MAGIC_OPEN 0xa029a697 /* Database is open */
9951 9951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_MAGIC_CLOSED 0x9f3c2d33 /* Database is closed */
9952 9952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_MAGIC_SICK 0x4b771290 /* Error and awaiting close */
9953 9953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_MAGIC_BUSY 0xf03b7906 /* Database currently in use */
9954 9954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_MAGIC_ERROR 0xb5357930 /* An SQLITE_MISUSE error occurred */
9955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_MAGIC_ZOMBIE 0x64cffc7f /* Close with last statement close */
9955 9956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9956 9957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
9957 9958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Each SQL function is defined by an instance of the following
9958 9959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** structure. A pointer to this structure is stored in the sqlite.aFunc
9959 9960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** hash table. When multiple functions have the same name, the hash table
@@ -11811,10 +11812,11 @@
11811 11812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3BeginTransaction(Parse*, int);
11812 11813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3CommitTransaction(Parse*);
11813 11814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3RollbackTransaction(Parse*);
11814 11815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3Savepoint(Parse*, int, Token*);
11815 11816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3CloseSavepoints(sqlite3 *);
11817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3*);
11816 11818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ExprIsConstant(Expr*);
11817 11819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr*);
11818 11820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction(Expr*);
11819 11821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ExprIsInteger(Expr*, int*);
11820 11822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE int sqlite3ExprCanBeNull(const Expr*);
@@ -17716,286 +17718,10 @@
17716 17718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
17717 17719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* defined(SQLITE_MUTEX_NOOP) */
17718 17720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif /* !defined(SQLITE_MUTEX_OMIT) */
17719 17721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
17720 17722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of mutex_noop.c ******************************************/
17721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Begin file mutex_os2.c ***************************************/
17722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2007 August 28
17724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The author disclaims copyright to this source code. In place of
17726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a legal notice, here is a blessing:
17727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you do good and not evil.
17729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you find forgiveness for yourself and forgive others.
17730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you share freely, never taking more than you give.
17731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *************************************************************************
17733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This file contains the C functions that implement mutexes for OS/2
17734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The code in this file is only used if SQLITE_MUTEX_OS2 is defined.
17738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** See the mutex.h file for details.
17739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_MUTEX_OS2
17741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /********************** OS/2 Mutex Implementation **********************
17743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This implementation of mutexes is built using the OS/2 API.
17745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The mutex object
17749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Each recursive mutex is an instance of the following structure.
17750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct sqlite3_mutex {
17752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HMTX mutex; /* Mutex controlling the lock */
17753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int id; /* Mutex type */
17754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int trace; /* True to trace changes */
17756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
17758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE3_MUTEX_INITIALIZER { 0, 0, 0 }
17761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
17762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE3_MUTEX_INITIALIZER { 0, 0 }
17763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Initialize and deinitialize the mutex subsystem.
17767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2MutexInit(void){ return SQLITE_OK; }
17769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2MutexEnd(void){ return SQLITE_OK; }
17770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The sqlite3_mutex_alloc() routine allocates a new
17773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** mutex and returns a pointer to it. If it returns NULL
17774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** that means that a mutex could not be allocated.
17775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLite will unwind its stack and return an error. The argument
17776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to sqlite3_mutex_alloc() is one of these integer constants:
17777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <ul>
17779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_FAST
17780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_RECURSIVE
17781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_STATIC_MASTER
17782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_STATIC_MEM
17783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_STATIC_MEM2
17784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_STATIC_PRNG
17785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_STATIC_LRU
17786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** <li> SQLITE_MUTEX_STATIC_LRU2
17787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** </ul>
17788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The first two constants cause sqlite3_mutex_alloc() to create
17790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a new mutex. The new mutex is recursive when SQLITE_MUTEX_RECURSIVE
17791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is used but not necessarily so when SQLITE_MUTEX_FAST is used.
17792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The mutex implementation does not need to make a distinction
17793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** between SQLITE_MUTEX_RECURSIVE and SQLITE_MUTEX_FAST if it does
17794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** not want to. But SQLite will only request a recursive mutex in
17795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** cases where it really needs one. If a faster non-recursive mutex
17796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** implementation is available on the host platform, the mutex subsystem
17797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** might return such a mutex in response to SQLITE_MUTEX_FAST.
17798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The other allowed parameters to sqlite3_mutex_alloc() each return
17800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a pointer to a static preexisting mutex. Six static mutexes are
17801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** used by the current version of SQLite. Future versions of SQLite
17802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** may add additional static mutexes. Static mutexes are for internal
17803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** use by SQLite only. Applications that use SQLite mutexes should
17804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** use only the dynamic mutexes returned by SQLITE_MUTEX_FAST or
17805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_MUTEX_RECURSIVE.
17806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
17807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Note that if one of the dynamic mutex parameters (SQLITE_MUTEX_FAST
17808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** or SQLITE_MUTEX_RECURSIVE) is used then sqlite3_mutex_alloc()
17809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** returns a different mutex on every call. But for the static
17810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** mutex types, the same mutex is returned on every call that has
17811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the same type number.
17812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static sqlite3_mutex *os2MutexAlloc(int iType){
17814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *p = NULL;
17815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- switch( iType ){
17816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_MUTEX_FAST:
17817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_MUTEX_RECURSIVE: {
17818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = sqlite3MallocZero( sizeof(*p) );
17819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p ){
17820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->id = iType;
17821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosCreateMutexSem( 0, &p->mutex, 0, FALSE ) != NO_ERROR ){
17822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free( p );
17823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = NULL;
17824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
17827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- default: {
17829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static volatile int isInit = 0;
17830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static sqlite3_mutex staticMutexes[6] = {
17831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE3_MUTEX_INITIALIZER,
17832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE3_MUTEX_INITIALIZER,
17833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE3_MUTEX_INITIALIZER,
17834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE3_MUTEX_INITIALIZER,
17835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE3_MUTEX_INITIALIZER,
17836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE3_MUTEX_INITIALIZER,
17837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
17838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if ( !isInit ){
17839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
17840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PTIB ptib;
17841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PPIB ppib;
17842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HMTX mutex;
17843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char name[32];
17844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosGetInfoBlocks( &ptib, &ppib );
17845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf( sizeof(name), name, "\\SEM32\\SQLITE%04x",
17846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ppib->pib_ulpid );
17847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( !isInit ){
17848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mutex = 0;
17849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosCreateMutexSem( name, &mutex, 0, FALSE);
17850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc == NO_ERROR ){
17851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned int i;
17852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !isInit ){
17853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for( i = 0; i < sizeof(staticMutexes)/sizeof(staticMutexes[0]); i++ ){
17854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosCreateMutexSem( 0, &staticMutexes[i].mutex, 0, FALSE );
17855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- isInit = 1;
17857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosCloseMutexSem( mutex );
17859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( rc == ERROR_DUPLICATE_NAME ){
17860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosSleep( 1 );
17861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
17862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return p;
17863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( iType-2 >= 0 );
17867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( iType-2 < sizeof(staticMutexes)/sizeof(staticMutexes[0]) );
17868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = &staticMutexes[iType-2];
17869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->id = iType;
17870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
17871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return p;
17874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This routine deallocates a previously allocated mutex.
17879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLite is careful to deallocate every mutex that it allocates.
17880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2MutexFree(sqlite3_mutex *p){
17882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TID tid;
17884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PID pid;
17885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulCount;
17886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosQueryMutexSem(p->mutex, &pid, &tid, &ulCount);
17887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( ulCount==0 );
17888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( p->id==SQLITE_MUTEX_FAST || p->id==SQLITE_MUTEX_RECURSIVE );
17889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosCloseMutexSem( p->mutex );
17891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free( p );
17892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are
17897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** intended for use inside assert() statements.
17898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2MutexHeld(sqlite3_mutex *p){
17900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TID tid;
17901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PID pid;
17902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulCount;
17903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PTIB ptib;
17904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosQueryMutexSem(p->mutex, &pid, &tid, &ulCount);
17905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( ulCount==0 || ( ulCount>1 && p->id!=SQLITE_MUTEX_RECURSIVE ) )
17906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
17907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosGetInfoBlocks(&ptib, NULL);
17908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return tid==ptib->tib_ptib2->tib2_ultid;
17909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2MutexNotheld(sqlite3_mutex *p){
17911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TID tid;
17912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PID pid;
17913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulCount;
17914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PTIB ptib;
17915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosQueryMutexSem(p->mutex, &pid, &tid, &ulCount);
17916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( ulCount==0 )
17917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
17918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosGetInfoBlocks(&ptib, NULL);
17919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return tid!=ptib->tib_ptib2->tib2_ultid;
17920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2MutexTrace(sqlite3_mutex *p, char *pAction){
17922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- TID tid;
17923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PID pid;
17924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulCount;
17925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosQueryMutexSem(p->mutex, &pid, &tid, &ulCount);
17926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- printf("%s mutex %p (%d) with nRef=%ld\n", pAction, (void*)p, p->trace, ulCount);
17927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The sqlite3_mutex_enter() and sqlite3_mutex_try() routines attempt
17932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to enter a mutex. If another thread is already within the mutex,
17933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_mutex_enter() will block and sqlite3_mutex_try() will return
17934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_BUSY. The sqlite3_mutex_try() interface returns SQLITE_OK
17935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** upon successful entry. Mutexes created using SQLITE_MUTEX_RECURSIVE can
17936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be entered multiple times by the same thread. In such cases the,
17937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** mutex must be exited an equal number of times before another thread
17938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** can enter. If the same thread tries to enter any other kind of mutex
17939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** more than once, the behavior is undefined.
17940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2MutexEnter(sqlite3_mutex *p){
17942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( p->id==SQLITE_MUTEX_RECURSIVE || os2MutexNotheld(p) );
17943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosRequestMutexSem(p->mutex, SEM_INDEFINITE_WAIT);
17944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->trace ) os2MutexTrace(p, "enter");
17946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2MutexTry(sqlite3_mutex *p){
17949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc = SQLITE_BUSY;
17950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( p->id==SQLITE_MUTEX_RECURSIVE || os2MutexNotheld(p) );
17951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosRequestMutexSem(p->mutex, SEM_IMMEDIATE_RETURN) == NO_ERROR ) {
17952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_OK;
17953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->trace ) os2MutexTrace(p, "try");
17955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
17958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
17961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The sqlite3_mutex_leave() routine exits a mutex that was
17962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** previously entered by the same thread. The behavior
17963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is undefined if the mutex is not currently entered or
17964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is not currently allocated. SQLite will never do either.
17965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
17966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2MutexLeave(sqlite3_mutex *p){
17967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( os2MutexHeld(p) );
17968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosReleaseMutexSem(p->mutex);
17969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p->trace ) os2MutexTrace(p, "leave");
17971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE sqlite3_mutex_methods const *sqlite3DefaultMutex(void){
17975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const sqlite3_mutex_methods sMutex = {
17976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexInit,
17977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexEnd,
17978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexAlloc,
17979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexFree,
17980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexEnter,
17981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexTry,
17982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexLeave,
17983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
17984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexHeld,
17985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2MutexNotheld
17986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
17987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0,
17988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0
17989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
17990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
17991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return &sMutex;
17993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
17994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* SQLITE_MUTEX_OS2 */
17995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
17996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** End of mutex_os2.c *******************************************/
17997 17723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file mutex_unix.c **************************************/
17998 17724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
17999 17725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2007 August 28
18000 17726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
18001 17727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The author disclaims copyright to this source code. In place of
@@ -18456,11 +18182,11 @@
18456 18182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** processing, the "interlocked" magic is probably not
18457 18183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** strictly necessary.
18458 18184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
18459 18185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static long winMutex_lock = 0;
18460 18186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API extern void sqlite3_win32_sleep(DWORD milliseconds); /* os_win.c */
18187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API void sqlite3_win32_sleep(DWORD milliseconds); /* os_win.c */
18462 18188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
18463 18189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int winMutexInit(void){
18464 18190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The first to increment to 1 does actual initialization */
18465 18191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( InterlockedCompareExchange(&winMutex_lock, 1, 0)==0 ){
18466 18192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
@@ -19599,11 +19325,12 @@
19599 19325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** always returned.
19600 19326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
19601 19327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){
19602 19328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int digit;
19603 19329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
LONGDOUBLE_TYPE d;
19604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (*cnt)++ >= 16 ) return '0';
19330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (*cnt)<=0 ) return '0';
19331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (*cnt)--;
19605 19332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
digit = (int)*val;
19606 19333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
d = digit;
19607 19334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
digit += '0';
19608 19335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*val = (*val - d)*10.0;
19609 19336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (char)digit;
@@ -19903,13 +19630,16 @@
19903 19630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt = "NaN";
19904 19631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
length = 3;
19905 19632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
19906 19633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19907 19634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( realvalue>0.0 ){
19908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( realvalue>=1e32 && exp<=350 ){ realvalue *= 1e-32; exp+=32; }
19909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( realvalue>=1e8 && exp<=350 ){ realvalue *= 1e-8; exp+=8; }
19910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( realvalue>=10.0 && exp<=350 ){ realvalue *= 0.1; exp++; }
19635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ LONGDOUBLE_TYPE scale = 1.0;
19636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( realvalue>=1e100*scale && exp<=350 ){ scale *= 1e100;exp+=100;}
19637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( realvalue>=1e64*scale && exp<=350 ){ scale *= 1e64; exp+=64; }
19638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( realvalue>=1e8*scale && exp<=350 ){ scale *= 1e8; exp+=8; }
19639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( realvalue>=10.0*scale && exp<=350 ){ scale *= 10.0; exp++; }
19640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ realvalue /= scale;
19911 19641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( realvalue<1e-8 ){ realvalue *= 1e8; exp-=8; }
19912 19642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( realvalue<1.0 ){ realvalue *= 10.0; exp--; }
19913 19643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( exp>350 ){
19914 19644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( prefix=='-' ){
19915 19645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bufpt = "-Inf";
@@ -19938,11 +19668,11 @@
19938 19668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
19939 19669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
precision = precision - exp;
19940 19670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
xtype = etFLOAT;
19941 19671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19942 19672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
19943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- flag_rtz = 0;
19673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ flag_rtz = flag_altform2;
19944 19674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19945 19675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( xtype==etEXP ){
19946 19676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e2 = 0;
19947 19677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
19948 19678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e2 = exp;
@@ -19953,11 +19683,11 @@
19953 19683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pAccum->mallocFailed = 1;
19954 19684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
19955 19685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19956 19686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19957 19687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOut = bufpt;
19958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nsd = 0;
19688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nsd = 16 + flag_altform2*10;
19959 19689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
flag_dp = (precision>0 ?1:0) | flag_alternateform | flag_altform2;
19960 19690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The sign in front of the number */
19961 19691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( prefix ){
19962 19692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*(bufpt++) = prefix;
19963 19693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -21526,11 +21256,11 @@
21526 21256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
s = sign<0 ? -s : s;
21527 21257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21528 21258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* if exponent, scale significand as appropriate
21529 21259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and store in result. */
21530 21260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( e ){
21531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- double scale = 1.0;
21261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ LONGDOUBLE_TYPE scale = 1.0;
21532 21262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* attempt to handle extremely small/large numbers better */
21533 21263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( e>307 && e<342 ){
21534 21264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( e%308 ) { scale *= 1.0e+1; e -= 1; }
21535 21265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( esign<0 ){
21536 21266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
result = s / scale;
@@ -22781,2144 +22511,10 @@
22781 22511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return azName[i];
22782 22512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
22783 22513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
22784 22514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
22785 22515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** End of opcodes.c *********************************************/
22786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Begin file os_os2.c ******************************************/
22787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2006 Feb 14
22789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The author disclaims copyright to this source code. In place of
22791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a legal notice, here is a blessing:
22792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you do good and not evil.
22794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you find forgiveness for yourself and forgive others.
22795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you share freely, never taking more than you give.
22796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ******************************************************************************
22798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This file contains code that is specific to OS/2.
22800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SQLITE_OS_OS2
22804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A Note About Memory Allocation:
22807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This driver uses malloc()/free() directly rather than going through
22809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the SQLite-wrappers sqlite3_malloc()/sqlite3_free(). Those wrappers
22810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are designed for use on embedded systems where memory is scarce and
22811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** malloc failures happen frequently. OS/2 does not typically run on
22812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** embedded systems, and when it does the developers normally have bigger
22813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** problems to worry about than running out of memory. So there is not
22814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a compelling need to use the wrappers.
22815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** But there is a good reason to not use the wrappers. If we use the
22817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** wrappers then we will get simulated malloc() failures within this
22818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** driver. And that causes all kinds of problems for our tests. We
22819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** could enhance SQLite to deal with simulated malloc failures within
22820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the OS driver, but the code to deal with those failure would not
22821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** be exercised on Linux (which does not need to malloc() in the driver)
22822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and so we would have difficulty writing coverage tests for that
22823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** code. Better to leave the code out, we think.
22824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The point of this discussion is as follows: When creating a new
22826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** OS layer for an embedded system, if you use this file as an example,
22827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** avoid the use of malloc()/free(). Those routines work ok on OS/2
22828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** desktops but not so well in embedded systems.
22829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Macros used to determine whether or not to use threads.
22833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_THREADSAFE) && SQLITE_THREADSAFE
22835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_OS2_THREADS 1
22836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
22837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Include code that is common to all os_*.c files
22840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Include os_common.h in the middle of os_os2.c ****************/
22842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Begin file os_common.h ***************************************/
22843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2004 May 22
22845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The author disclaims copyright to this source code. In place of
22847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a legal notice, here is a blessing:
22848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you do good and not evil.
22850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you find forgiveness for yourself and forgive others.
22851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you share freely, never taking more than you give.
22852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ******************************************************************************
22854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This file contains macros and a little bit of code that is common to
22856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** all of the platform-specific files (os_*.c) and is #included into those
22857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** files.
22858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This file should be #included by the os_*.c files only. It is not a
22860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** general purpose header file.
22861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef _OS_COMMON_H_
22863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define _OS_COMMON_H_
22864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** At least two bugs have slipped in because we changed the MEMORY_DEBUG
22867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** macro to SQLITE_DEBUG and some older makefiles have not yet made the
22868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** switch. The following code should catch this problem at compile-time.
22869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef MEMORY_DEBUG
22871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # error "The MEMORY_DEBUG macro is obsolete. Use SQLITE_DEBUG instead."
22872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
22873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_TEST) && defined(SQLITE_DEBUG)
22875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # ifndef SQLITE_DEBUG_OS_TRACE
22876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define SQLITE_DEBUG_OS_TRACE 0
22877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # endif
22878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int sqlite3OSTrace = SQLITE_DEBUG_OS_TRACE;
22879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define OSTRACE(X) if( sqlite3OSTrace ) sqlite3DebugPrintf X
22880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
22881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define OSTRACE(X)
22882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
22883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Macros for performance tracing. Normally turned off. Only works
22886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** on i486 hardware.
22887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_PERFORMANCE_TRACE
22889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** hwtime.h contains inline assembler code for implementing
22892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** high-performance timing routines.
22893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Include hwtime.h in the middle of os_common.h ****************/
22895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Begin file hwtime.h ******************************************/
22896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2008 May 27
22898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The author disclaims copyright to this source code. In place of
22900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a legal notice, here is a blessing:
22901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you do good and not evil.
22903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you find forgiveness for yourself and forgive others.
22904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** May you share freely, never taking more than you give.
22905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ******************************************************************************
22907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
22908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This file contains inline asm code for retrieving "high-performance"
22909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** counters for x86 class CPUs.
22910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef _HWTIME_H_
22912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define _HWTIME_H_
22913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The following routine only works on pentium-class (or newer) processors.
22916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** It uses the RDTSC opcode to read the cycle count value out of the
22917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** processor and returns that value. This can be used for high-res
22918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** profiling.
22919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if (defined(__GNUC__) || defined(_MSC_VER)) && \
22921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (defined(i386) || defined(__i386__) || defined(_M_IX86))
22922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(__GNUC__)
22924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __inline__ sqlite_uint64 sqlite3Hwtime(void){
22926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned int lo, hi;
22927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
22928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (sqlite_uint64)hi << 32 | lo;
22929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
22930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #elif defined(_MSC_VER)
22932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
22934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __asm {
22935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rdtsc
22936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ret ; return value at EDX:EAX
22937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
22938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
22939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
22941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #elif (defined(__GNUC__) && defined(__x86_64__))
22943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __inline__ sqlite_uint64 sqlite3Hwtime(void){
22945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned long val;
22946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __asm__ __volatile__ ("rdtsc" : "=A" (val));
22947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return val;
22948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
22949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #elif (defined(__GNUC__) && defined(__ppc__))
22951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __inline__ sqlite_uint64 sqlite3Hwtime(void){
22953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned long long retval;
22954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned long junk;
22955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- __asm__ __volatile__ ("\n\
22956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 1: mftbu %1\n\
22957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mftb %L0\n\
22958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mftbu %0\n\
22959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cmpw %0,%1\n\
22960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- bne 1b"
22961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- : "=r" (retval), "=r" (junk));
22962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return retval;
22963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
22964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
22966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #error Need implementation of sqlite3Hwtime() for your platform.
22968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** To compile without implementing sqlite3Hwtime() for your platform,
22971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** you can remove the above #error and use the following
22972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** stub function. You will lose timing support for many
22973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the debugging and testing utilities, but it should at
22974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** least compile and run.
22975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
22976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void){ return ((sqlite_uint64)0); }
22977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
22979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* !defined(_HWTIME_H_) */
22981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** End of hwtime.h **********************************************/
22983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Continuing where we left off in os_common.h ******************/
22984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static sqlite_uint64 g_start;
22986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static sqlite_uint64 g_elapsed;
22987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TIMER_START g_start=sqlite3Hwtime()
22988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TIMER_END g_elapsed=sqlite3Hwtime()-g_start
22989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TIMER_ELAPSED g_elapsed
22990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
22991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TIMER_START
22992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TIMER_END
22993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define TIMER_ELAPSED ((sqlite_uint64)0)
22994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
22995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
22997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If we compile with the SQLITE_TEST macro set, then the following block
22998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of code will give us the ability to simulate a disk I/O error. This
22999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is used for testing the I/O recovery logic.
23000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_TEST
23002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_io_error_hit = 0; /* Total number of I/O Errors */
23003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_io_error_hardhit = 0; /* Number of non-benign errors */
23004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_io_error_pending = 0; /* Count down to first I/O error */
23005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_io_error_persist = 0; /* True if I/O errors persist */
23006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_io_error_benign = 0; /* True if errors are benign */
23007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_diskfull_pending = 0;
23008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_diskfull = 0;
23009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SimulateIOErrorBenign(X) sqlite3_io_error_benign=(X)
23010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SimulateIOError(CODE) \
23011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (sqlite3_io_error_persist && sqlite3_io_error_hit) \
23012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || sqlite3_io_error_pending-- == 1 ) \
23013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { local_ioerr(); CODE; }
23014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void local_ioerr(){
23015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- IOTRACE(("IOERR\n"));
23016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_io_error_hit++;
23017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !sqlite3_io_error_benign ) sqlite3_io_error_hardhit++;
23018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SimulateDiskfullError(CODE) \
23020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3_diskfull_pending ){ \
23021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3_diskfull_pending == 1 ){ \
23022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- local_ioerr(); \
23023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_diskfull = 1; \
23024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_io_error_hit = 1; \
23025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CODE; \
23026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{ \
23027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_diskfull_pending--; \
23028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } \
23029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
23031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SimulateIOErrorBenign(X)
23032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SimulateIOError(A)
23033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SimulateDiskfullError(A)
23034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** When testing, keep a count of the number of open files.
23038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_TEST
23040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_open_file_count = 0;
23041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OpenCounter(X) sqlite3_open_file_count+=(X)
23042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
23043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OpenCounter(X)
23044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* !defined(_OS_COMMON_H_) */
23047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** End of os_common.h *******************************************/
23049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** Continuing where we left off in os_os2.c *********************/
23050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Forward references */
23052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct os2File os2File; /* The file structure */
23053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct os2ShmNode os2ShmNode; /* A shared descritive memory node */
23054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef struct os2ShmLink os2ShmLink; /* A connection to shared-memory */
23055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The os2File structure is subclass of sqlite3_file specific for the OS/2
23058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** protability layer.
23059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct os2File {
23061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const sqlite3_io_methods *pMethod; /* Always the first entry */
23062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HFILE h; /* Handle for accessing the file */
23063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int flags; /* Flags provided to os2Open() */
23064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int locktype; /* Type of lock currently held on this file */
23065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int szChunk; /* Chunk size configured by FCNTL_CHUNK_SIZE */
23066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zFullPathCp; /* Full path name of this file */
23067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink *pShmLink; /* Instance of shared memory on this file */
23068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
23069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define LOCK_TIMEOUT 10L /* the default locking timeout */
23071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Missing from some versions of the OS/2 toolkit -
23074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** used to allocate from high memory if possible
23075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef OBJ_ANY
23077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define OBJ_ANY 0x00000400
23078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*****************************************************************************
23081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The next group of routines implement the I/O methods specified
23082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** by the sqlite3_io_methods object.
23083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ******************************************************************************/
23084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Close a file.
23087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Close( sqlite3_file *id ){
23089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
23090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( id!=0 );
23093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "CLOSE %d (%s)\n", pFile->h, pFile->zFullPathCp ));
23094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosClose( pFile->h );
23096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFile->flags & SQLITE_OPEN_DELETEONCLOSE )
23098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosForceDelete( (PSZ)pFile->zFullPathCp );
23099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free( pFile->zFullPathCp );
23101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->zFullPathCp = NULL;
23102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->locktype = NO_LOCK;
23103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->h = (HFILE)-1;
23104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->flags = 0;
23105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OpenCounter( -1 );
23107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR;
23108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Read data from a file into a buffer. Return SQLITE_OK if all
23112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** bytes were read successfully and SQLITE_IOERR if anything goes
23113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** wrong.
23114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Read(
23116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_file *id, /* File to read from */
23117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *pBuf, /* Write content into this buffer */
23118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int amt, /* Number of bytes to read */
23119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_int64 offset /* Begin reading at this offset */
23120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
23121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG fileLocation = 0L;
23122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG got;
23123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( id!=0 );
23125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( return SQLITE_IOERR_READ );
23126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "READ %d lock=%d\n", pFile->h, pFile->locktype ));
23127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosSetFilePtr(pFile->h, offset, FILE_BEGIN, &fileLocation) != NO_ERROR ){
23128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_IOERR;
23129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosRead( pFile->h, pBuf, amt, &got ) != NO_ERROR ){
23131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_IOERR_READ;
23132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( got == (ULONG)amt )
23134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- else {
23136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Unread portions of the input buffer must be zero-filled */
23137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&((char*)pBuf)[got], 0, amt-got);
23138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_IOERR_SHORT_READ;
23139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Write data from a buffer into a file. Return SQLITE_OK on success
23144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** or some other error code on failure.
23145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Write(
23147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_file *id, /* File to write into */
23148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const void *pBuf, /* The bytes to be written */
23149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int amt, /* Number of bytes to write */
23150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_int64 offset /* Offset into the file to begin writing at */
23151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
23152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG fileLocation = 0L;
23153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc = NO_ERROR;
23154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG wrote;
23155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( id!=0 );
23157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( return SQLITE_IOERR_WRITE );
23158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateDiskfullError( return SQLITE_FULL );
23159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "WRITE %d lock=%d\n", pFile->h, pFile->locktype ));
23160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosSetFilePtr(pFile->h, offset, FILE_BEGIN, &fileLocation) != NO_ERROR ){
23161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_IOERR;
23162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( amt>0 );
23164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( amt > 0 &&
23165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ( rc = DosWrite( pFile->h, (PVOID)pBuf, amt, &wrote ) ) == NO_ERROR &&
23166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wrote > 0
23167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
23168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- amt -= wrote;
23169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pBuf = &((char*)pBuf)[wrote];
23170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return ( rc != NO_ERROR || amt > (int)wrote ) ? SQLITE_FULL : SQLITE_OK;
23173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Truncate an open file to a specified size
23177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Truncate( sqlite3_file *id, i64 nByte ){
23179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
23180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( id!=0 );
23182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "TRUNCATE %d %lld\n", pFile->h, nByte ));
23183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( return SQLITE_IOERR_TRUNCATE );
23184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If the user has configured a chunk-size for this file, truncate the
23186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** file so that it consists of an integer number of chunks (i.e. the
23187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** actual file size after the operation may be larger than the requested
23188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** size).
23189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFile->szChunk ){
23191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nByte = ((nByte + pFile->szChunk - 1)/pFile->szChunk) * pFile->szChunk;
23192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosSetFileSize( pFile->h, nByte );
23195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR_TRUNCATE;
23196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_TEST
23199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Count the number of fullsyncs and normal syncs. This is used to test
23201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** that syncs and fullsyncs are occuring at the right times.
23202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_sync_count = 0;
23204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_fullsync_count = 0;
23205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Make sure all writes to a particular file are committed to disk.
23209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Sync( sqlite3_file *id, int flags ){
23211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "SYNC %d lock=%d\n", pFile->h, pFile->locktype ));
23213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_TEST
23214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( flags & SQLITE_SYNC_FULL){
23215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_fullsync_count++;
23216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_sync_count++;
23218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If we compiled with the SQLITE_NO_SYNC flag, then syncing is a
23220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** no-op
23221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_NO_SYNC
23223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UNUSED_PARAMETER(pFile);
23224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
23226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return DosResetBuffer( pFile->h ) == NO_ERROR ? SQLITE_OK : SQLITE_IOERR;
23227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Determine the current size of a file in bytes
23232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2FileSize( sqlite3_file *id, sqlite3_int64 *pSize ){
23234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc = NO_ERROR;
23235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILESTATUS3 fsts3FileInfo;
23236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&fsts3FileInfo, 0, sizeof(fsts3FileInfo));
23237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( id!=0 );
23238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( return SQLITE_IOERR_FSTAT );
23239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosQueryFileInfo( ((os2File*)id)->h, FIL_STANDARD, &fsts3FileInfo, sizeof(FILESTATUS3) );
23240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc == NO_ERROR ){
23241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pSize = fsts3FileInfo.cbFile;
23242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
23244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_IOERR_FSTAT;
23245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Acquire a reader lock.
23250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int getReadLock( os2File *pFile ){
23252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILELOCK LockArea,
23253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea;
23254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET res;
23255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&LockArea, 0, sizeof(LockArea));
23256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&UnlockArea, 0, sizeof(UnlockArea));
23257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = SHARED_FIRST;
23258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = SHARED_SIZE;
23259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = 0L;
23260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 0L;
23261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 1L );
23262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "GETREADLOCK %d res=%d\n", pFile->h, res ));
23263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return res;
23264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Undo a readlock
23268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int unlockReadLock( os2File *id ){
23270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILELOCK LockArea,
23271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea;
23272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET res;
23273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&LockArea, 0, sizeof(LockArea));
23274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&UnlockArea, 0, sizeof(UnlockArea));
23275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = 0L;
23276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 0L;
23277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = SHARED_FIRST;
23278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = SHARED_SIZE;
23279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( id->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 1L );
23280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK-READLOCK file handle=%d res=%d?\n", id->h, res ));
23281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return res;
23282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Lock the file with the lock specified by parameter locktype - one
23286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the following:
23287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (1) SHARED_LOCK
23289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (2) RESERVED_LOCK
23290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (3) PENDING_LOCK
23291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (4) EXCLUSIVE_LOCK
23292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Sometimes when requesting one lock state, additional lock states
23294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are inserted in between. The locking might fail on one of the later
23295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** transitions leaving the lock state different from what it started but
23296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** still short of its goal. The following chart shows the allowed
23297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** transitions and the inserted intermediate states:
23298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** UNLOCKED -> SHARED
23300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SHARED -> RESERVED
23301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SHARED -> (PENDING) -> EXCLUSIVE
23302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** RESERVED -> (PENDING) -> EXCLUSIVE
23303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** PENDING -> EXCLUSIVE
23304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This routine will only increase a lock. The os2Unlock() routine
23306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** erases all locks at once and returns us immediately to locking level 0.
23307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** It is not possible to lower the locking level one step at a time. You
23308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** must go straight to locking level 0.
23309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Lock( sqlite3_file *id, int locktype ){
23311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc = SQLITE_OK; /* Return code from subroutines */
23312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET res = NO_ERROR; /* Result of an OS/2 lock call */
23313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int newLocktype; /* Set pFile->locktype to this value before exiting */
23314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int gotPendingLock = 0;/* True if we acquired a PENDING lock this time */
23315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILELOCK LockArea,
23316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea;
23317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&LockArea, 0, sizeof(LockArea));
23319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&UnlockArea, 0, sizeof(UnlockArea));
23320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile!=0 );
23321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d %d was %d\n", pFile->h, locktype, pFile->locktype ));
23322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If there is already a lock of this type or more restrictive on the
23324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2File, do nothing. Don't use the end_lock: exit path, as
23325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_mutex_enter() hasn't been called yet.
23326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFile->locktype>=locktype ){
23328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d %d ok (already held)\n", pFile->h, locktype ));
23329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Make sure the locking sequence is correct
23333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK );
23335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( locktype!=PENDING_LOCK );
23336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK );
23337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Lock the PENDING_LOCK byte if we need to acquire a PENDING lock or
23339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a SHARED lock. If we are acquiring a SHARED lock, the acquisition of
23340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the PENDING_LOCK byte is temporary.
23341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- newLocktype = pFile->locktype;
23343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFile->locktype==NO_LOCK
23344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || (locktype==EXCLUSIVE_LOCK && pFile->locktype==RESERVED_LOCK)
23345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
23346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = PENDING_BYTE;
23347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 1L;
23348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = 0L;
23349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 0L;
23350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* wait longer than LOCK_TIMEOUT here not to have to try multiple times */
23352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 100L, 0L );
23353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( res == NO_ERROR ){
23354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- gotPendingLock = 1;
23355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d pending lock boolean set. res=%d\n", pFile->h, res ));
23356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Acquire a shared lock
23360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( locktype==SHARED_LOCK && res == NO_ERROR ){
23362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile->locktype==NO_LOCK );
23363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = getReadLock(pFile);
23364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( res == NO_ERROR ){
23365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- newLocktype = SHARED_LOCK;
23366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d acquire shared lock. res=%d\n", pFile->h, res ));
23368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Acquire a RESERVED lock
23371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( locktype==RESERVED_LOCK && res == NO_ERROR ){
23373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile->locktype==SHARED_LOCK );
23374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = RESERVED_BYTE;
23375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 1L;
23376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = 0L;
23377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 0L;
23378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( res == NO_ERROR ){
23380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- newLocktype = RESERVED_LOCK;
23381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d acquire reserved lock. res=%d\n", pFile->h, res ));
23383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Acquire a PENDING lock
23386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( locktype==EXCLUSIVE_LOCK && res == NO_ERROR ){
23388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- newLocktype = PENDING_LOCK;
23389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- gotPendingLock = 0;
23390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d acquire pending lock. pending lock boolean unset.\n",
23391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->h ));
23392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Acquire an EXCLUSIVE lock
23395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( locktype==EXCLUSIVE_LOCK && res == NO_ERROR ){
23397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile->locktype>=SHARED_LOCK );
23398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = unlockReadLock(pFile);
23399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "unreadlock = %d\n", res ));
23400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = SHARED_FIRST;
23401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = SHARED_SIZE;
23402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = 0L;
23403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 0L;
23404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( res == NO_ERROR ){
23406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- newLocktype = EXCLUSIVE_LOCK;
23407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
23408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "OS/2 error-code = %d\n", res ));
23409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- getReadLock(pFile);
23410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d acquire exclusive lock. res=%d\n", pFile->h, res ));
23412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If we are holding a PENDING lock that ought to be released, then
23415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** release it now.
23416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( gotPendingLock && locktype==SHARED_LOCK ){
23418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int r;
23419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = 0L;
23420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 0L;
23421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = PENDING_BYTE;
23422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 1L;
23423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- r = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d unlocking pending/is shared. r=%d\n", pFile->h, r ));
23425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Update the state of the lock has held in the file descriptor then
23428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** return the appropriate result code.
23429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( res == NO_ERROR ){
23431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_OK;
23432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
23433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK FAILED %d trying for %d but got %d\n", pFile->h,
23434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- locktype, newLocktype ));
23435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_BUSY;
23436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->locktype = newLocktype;
23438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "LOCK %d now %d\n", pFile->h, pFile->locktype ));
23439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
23440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This routine checks if there is a RESERVED lock held on the specified
23444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** file by this or any other process. If such a lock is held, return
23445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** non-zero, otherwise zero.
23446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2CheckReservedLock( sqlite3_file *id, int *pOut ){
23448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int r = 0;
23449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile!=0 );
23451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pFile->locktype>=RESERVED_LOCK ){
23452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- r = 1;
23453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "TEST WR-LOCK %d %d (local)\n", pFile->h, r ));
23454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
23455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILELOCK LockArea,
23456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea;
23457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc = NO_ERROR;
23458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&LockArea, 0, sizeof(LockArea));
23459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&UnlockArea, 0, sizeof(UnlockArea));
23460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = RESERVED_BYTE;
23461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 1L;
23462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = 0L;
23463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 0L;
23464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "TEST WR-LOCK %d lock reserved byte rc=%d\n", pFile->h, rc ));
23466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc == NO_ERROR ){
23467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rcu = NO_ERROR; /* return code for unlocking */
23468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = 0L;
23469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 0L;
23470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = RESERVED_BYTE;
23471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 1L;
23472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rcu = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "TEST WR-LOCK %d unlock reserved byte r=%d\n", pFile->h, rcu ));
23474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- r = !(rc == NO_ERROR);
23476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "TEST WR-LOCK %d %d (remote)\n", pFile->h, r ));
23477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pOut = r;
23479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Lower the locking level on file descriptor id to locktype. locktype
23484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** must be either NO_LOCK or SHARED_LOCK.
23485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the locking level of the file descriptor is already at or below
23487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the requested locking level, this routine is a no-op.
23488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** It is not possible for this routine to fail if the second argument
23490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is NO_LOCK. If the second argument is SHARED_LOCK then this routine
23491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** might return SQLITE_IOERR;
23492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Unlock( sqlite3_file *id, int locktype ){
23494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int type;
23495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
23496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc = SQLITE_OK;
23497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET res = NO_ERROR;
23498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILELOCK LockArea,
23499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea;
23500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&LockArea, 0, sizeof(LockArea));
23501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(&UnlockArea, 0, sizeof(UnlockArea));
23502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( pFile!=0 );
23503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( locktype<=SHARED_LOCK );
23504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK %d to %d was %d\n", pFile->h, locktype, pFile->locktype ));
23505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- type = pFile->locktype;
23506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( type>=EXCLUSIVE_LOCK ){
23507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = 0L;
23508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 0L;
23509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = SHARED_FIRST;
23510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = SHARED_SIZE;
23511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK %d exclusive lock res=%d\n", pFile->h, res ));
23513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( locktype==SHARED_LOCK && getReadLock(pFile) != NO_ERROR ){
23514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* This should never happen. We should always be able to
23515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** reacquire the read lock */
23516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK %d to %d getReadLock() failed\n", pFile->h, locktype ));
23517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_IOERR_UNLOCK;
23518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( type>=RESERVED_LOCK ){
23521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = 0L;
23522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 0L;
23523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = RESERVED_BYTE;
23524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 1L;
23525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK %d reserved res=%d\n", pFile->h, res ));
23527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( locktype==NO_LOCK && type>=SHARED_LOCK ){
23529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = unlockReadLock(pFile);
23530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK %d is %d want %d res=%d\n",
23531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->h, type, locktype, res ));
23532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( type>=PENDING_LOCK ){
23534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lOffset = 0L;
23535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- LockArea.lRange = 0L;
23536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lOffset = PENDING_BYTE;
23537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UnlockArea.lRange = 1L;
23538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- res = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, LOCK_TIMEOUT, 0L );
23539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK %d pending res=%d\n", pFile->h, res ));
23540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->locktype = locktype;
23542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "UNLOCK %d now %d\n", pFile->h, pFile->locktype ));
23543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
23544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Control and query of the open file handle.
23548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2FileControl(sqlite3_file *id, int op, void *pArg){
23550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- switch( op ){
23551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_FCNTL_LOCKSTATE: {
23552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *(int*)pArg = ((os2File*)id)->locktype;
23553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "FCNTL_LOCKSTATE %d lock=%d\n",
23554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((os2File*)id)->h, ((os2File*)id)->locktype ));
23555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_FCNTL_CHUNK_SIZE: {
23558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((os2File*)id)->szChunk = *(int*)pArg;
23559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_FCNTL_SIZE_HINT: {
23562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_int64 sz = *(sqlite3_int64*)pArg;
23563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOErrorBenign(1);
23564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Truncate(id, sz);
23565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOErrorBenign(0);
23566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_FCNTL_SYNC_OMITTED: {
23569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
23570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_NOTFOUND;
23573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Return the sector size in bytes of the underlying block device for
23577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the specified file. This is almost always 512 bytes, but may be
23578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** larger for some devices.
23579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLite code assumes this function cannot fail. It also assumes that
23581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** if two files are created in the same file-system directory (i.e.
23582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a database and its journal file) that the sector size will be the
23583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** same for both.
23584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2SectorSize(sqlite3_file *id){
23586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UNUSED_PARAMETER(id);
23587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_DEFAULT_SECTOR_SIZE;
23588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Return a vector of device characteristics.
23592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2DeviceCharacteristics(sqlite3_file *id){
23594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UNUSED_PARAMETER(id);
23595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
23596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Character set conversion objects used by conversion routines.
23601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static UconvObject ucUtf8 = NULL; /* convert between UTF-8 and UCS-2 */
23603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static UconvObject uclCp = NULL; /* convert between local codepage and UCS-2 */
23604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Helper function to initialize the conversion objects from and to UTF-8.
23607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void initUconvObjects( void ){
23609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( UniCreateUconvObject( UTF_8, &ucUtf8 ) != ULS_SUCCESS )
23610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ucUtf8 = NULL;
23611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if ( UniCreateUconvObject( (UniChar *)L"@path=yes", &uclCp ) != ULS_SUCCESS )
23612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- uclCp = NULL;
23613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Helper function to free the conversion objects from and to UTF-8.
23617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void freeUconvObjects( void ){
23619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if ( ucUtf8 )
23620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UniFreeUconvObject( ucUtf8 );
23621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if ( uclCp )
23622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UniFreeUconvObject( uclCp );
23623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ucUtf8 = NULL;
23624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- uclCp = NULL;
23625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Helper function to convert UTF-8 filenames to local OS/2 codepage.
23629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The two-step process: first convert the incoming UTF-8 string
23630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** into UCS-2 and then from UCS-2 to the current codepage.
23631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The returned char pointer has to be freed.
23632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static char *convertUtf8PathToCp( const char *in ){
23634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UniChar tempPath[CCHMAXPATH];
23635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *out = (char *)calloc( CCHMAXPATH, 1 );
23636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !out )
23638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return NULL;
23639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !ucUtf8 || !uclCp )
23641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- initUconvObjects();
23642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* determine string for the conversion of UTF-8 which is CP1208 */
23644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( UniStrToUcs( ucUtf8, tempPath, (char *)in, CCHMAXPATH ) != ULS_SUCCESS )
23645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return out; /* if conversion fails, return the empty string */
23646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* conversion for current codepage which can be used for paths */
23648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UniStrFromUcs( uclCp, out, tempPath, CCHMAXPATH );
23649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return out;
23651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Helper function to convert filenames from local codepage to UTF-8.
23655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The two-step process: first convert the incoming codepage-specific
23656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** string into UCS-2 and then from UCS-2 to the codepage of UTF-8.
23657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The returned char pointer has to be freed.
23658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This function is non-static to be able to use this in shell.c and
23660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** similar applications that take command line arguments.
23661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *convertCpPathToUtf8( const char *in ){
23663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UniChar tempPath[CCHMAXPATH];
23664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *out = (char *)calloc( CCHMAXPATH, 1 );
23665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !out )
23667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return NULL;
23668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !ucUtf8 || !uclCp )
23670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- initUconvObjects();
23671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* conversion for current codepage which can be used for paths */
23673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( UniStrToUcs( uclCp, tempPath, (char *)in, CCHMAXPATH ) != ULS_SUCCESS )
23674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return out; /* if conversion fails, return the empty string */
23675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* determine string for the conversion of UTF-8 which is CP1208 */
23677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UniStrFromUcs( ucUtf8, out, tempPath, CCHMAXPATH );
23678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return out;
23680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_WAL
23684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Use main database file for interprocess locking. If un-defined
23687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a separate file is created for this purpose. The file will be
23688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** used only to set file locks. There will be no data written to it.
23689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_OS2_NO_WAL_LOCK_FILE
23691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if 0
23693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void _ERR_TRACE( const char *fmt, ... ) {
23694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- va_list ap;
23695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- va_start(ap, fmt);
23696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- vfprintf(stderr, fmt, ap);
23697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fflush(stderr);
23698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define ERR_TRACE(rc, msg) \
23700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (rc) != SQLITE_OK ) _ERR_TRACE msg;
23701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
23702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define ERR_TRACE(rc, msg)
23703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Helper functions to obtain and relinquish the global mutex. The
23707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** global mutex is used to protect os2ShmNodeList.
23708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Function os2ShmMutexHeld() is used to assert() that the global mutex
23710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is held when required. This function is only used as part of assert()
23711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** statements. e.g.
23712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2ShmEnterMutex()
23714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** assert( os2ShmMutexHeld() );
23715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2ShmLeaveMutex()
23716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2ShmEnterMutex(void){
23718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
23719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2ShmLeaveMutex(void){
23721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
23722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
23724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2ShmMutexHeld(void) {
23725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return sqlite3_mutex_held(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER));
23726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int GetCurrentProcessId(void) {
23728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PPIB pib;
23729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosGetInfoBlocks(NULL, &pib);
23730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (int)pib->pib_ulpid;
23731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Object used to represent a the shared memory area for a single log file.
23736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** When multiple threads all reference the same log-summary, each thread has
23737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** its own os2File object, but they all point to a single instance of this
23738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** object. In other words, each log-summary is opened only once per process.
23739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2ShmMutexHeld() must be true when creating or destroying
23741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** this object or while reading or writing the following fields:
23742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** nRef
23744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pNext
23745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The following fields are read-only after the object is created:
23747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** szRegion
23749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** hLockFile
23750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** shmBaseName
23751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Either os2ShmNode.mutex must be held or os2ShmNode.nRef==0 and
23753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2ShmMutexHeld() is true when reading or writing any other field
23754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in this structure.
23755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct os2ShmNode {
23758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *mutex; /* Mutex to access this object */
23759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pNext; /* Next in list of all os2ShmNode objects */
23760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int szRegion; /* Size of shared-memory regions */
23762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nRegion; /* Size of array apRegion */
23764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void **apRegion; /* Array of pointers to shared-memory regions */
23765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nRef; /* Number of os2ShmLink objects pointing to this */
23767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink *pFirst; /* First os2ShmLink object pointing to this */
23768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HFILE hLockFile; /* File used for inter-process memory locking */
23770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char shmBaseName[1]; /* Name of the memory object !!! must last !!! */
23771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
23772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Structure used internally by this VFS to record the state of an
23776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** open shared memory connection.
23777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The following fields are initialized when this object is created and
23779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are read-only thereafter:
23780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2Shm.pShmNode
23782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2Shm.id
23783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** All other fields are read/write. The os2Shm.pShmNode->mutex must be held
23785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** while accessing any read/write fields.
23786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct os2ShmLink {
23788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pShmNode; /* The underlying os2ShmNode object */
23789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink *pNext; /* Next os2Shm with the same os2ShmNode */
23790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 sharedMask; /* Mask of shared locks held */
23791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 exclMask; /* Mask of exclusive locks held */
23792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
23793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u8 id; /* Id of this connection with its os2ShmNode */
23794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
23796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A global list of all os2ShmNode objects.
23800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The os2ShmMutexHeld() must be true while reading or writing this list.
23802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static os2ShmNode *os2ShmNodeList = NULL;
23804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Constants used for locking
23807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_OS2_NO_WAL_LOCK_FILE
23809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OS2_SHM_BASE (PENDING_BYTE + 0x10000) /* first lock byte */
23810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
23811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OS2_SHM_BASE ((22+SQLITE_SHM_NLOCK)*4) /* first lock byte */
23812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define OS2_SHM_DMS (OS2_SHM_BASE+SQLITE_SHM_NLOCK) /* deadman switch */
23815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Apply advisory locks for all n bytes beginning at ofst.
23818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define _SHM_UNLCK 1 /* no lock */
23820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define _SHM_RDLCK 2 /* shared lock, no wait */
23821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define _SHM_WRLCK 3 /* exlusive lock, no wait */
23822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define _SHM_WRLCK_WAIT 4 /* exclusive lock, wait */
23823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2ShmSystemLock(
23824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pNode, /* Apply locks to this open shared-memory segment */
23825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int lockType, /* _SHM_UNLCK, _SHM_RDLCK, _SHM_WRLCK or _SHM_WRLCK_WAIT */
23826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int ofst, /* Offset to first byte to be locked/unlocked */
23827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nByte /* Number of bytes to lock or unlock */
23828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
23829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
23830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILELOCK area;
23831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG mode, timeout;
23832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Access to the os2ShmNode object is serialized by the caller */
23834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( sqlite3_mutex_held(pNode->mutex) || pNode->nRef==0 );
23835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mode = 1; /* shared lock */
23837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- timeout = 0; /* no wait */
23838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- area.lOffset = ofst;
23839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- area.lRange = nByte;
23840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- switch( lockType ) {
23842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case _SHM_WRLCK_WAIT:
23843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- timeout = (ULONG)-1; /* wait forever */
23844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case _SHM_WRLCK:
23845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mode = 0; /* exclusive lock */
23846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case _SHM_RDLCK:
23847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosSetFileLocks(pNode->hLockFile,
23848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- NULL, &area, timeout, mode);
23849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
23850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* case _SHM_UNLCK: */
23851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- default:
23852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosSetFileLocks(pNode->hLockFile,
23853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &area, NULL, 0, 0);
23854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
23855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(("SHM-LOCK %d %s %s 0x%08lx\n",
23858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->hLockFile,
23859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc==SQLITE_OK ? "ok" : "failed",
23860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- lockType==_SHM_UNLCK ? "Unlock" : "Lock",
23861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc));
23862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ERR_TRACE(rc, ("os2ShmSystemLock: %d %s\n", rc, pNode->shmBaseName))
23864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return ( rc == 0 ) ? SQLITE_OK : SQLITE_BUSY;
23866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Find an os2ShmNode in global list or allocate a new one, if not found.
23870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This is not a VFS shared-memory method; it is a utility function called
23872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** by VFS shared-memory methods.
23873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2OpenSharedMemory( os2File *fd, int szRegion ) {
23875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink *pLink;
23876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pNode;
23877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int cbShmName, rc = SQLITE_OK;
23878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char shmName[CCHMAXPATH + 30];
23879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OS2_NO_WAL_LOCK_FILE
23880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG action;
23881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* We need some additional space at the end to append the region number */
23884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cbShmName = sprintf(shmName, "\\SHAREMEM\\%s", fd->zFullPathCp );
23885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( cbShmName >= CCHMAXPATH-8 )
23886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_IOERR_SHMOPEN;
23887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Replace colon in file name to form a valid shared memory name */
23889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- shmName[10+1] = '!';
23890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Allocate link object (we free it later in case of failure) */
23892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pLink = sqlite3_malloc( sizeof(*pLink) );
23893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pLink )
23894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_NOMEM;
23895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Access node list */
23897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmEnterMutex();
23898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Find node by it's shared memory base name */
23900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for( pNode = os2ShmNodeList;
23901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode && stricmp(shmName, pNode->shmBaseName) != 0;
23902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode = pNode->pNext ) ;
23903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Not found: allocate a new node */
23905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pNode ) {
23906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode = sqlite3_malloc( sizeof(*pNode) + cbShmName );
23907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pNode ) {
23908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(pNode, 0, sizeof(*pNode) );
23909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->szRegion = szRegion;
23910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->hLockFile = (HFILE)-1;
23911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- strcpy(pNode->shmBaseName, shmName);
23912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_OS2_NO_WAL_LOCK_FILE
23914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosDupHandle(fd->h, &pNode->hLockFile) != 0 ) {
23915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
23916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sprintf(shmName, "%s-lck", fd->zFullPathCp);
23917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosOpen((PSZ)shmName, &pNode->hLockFile, &action, 0, FILE_NORMAL,
23918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_CREATE_IF_NEW,
23919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYNONE |
23920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_FAIL_ON_ERROR,
23921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- NULL) != 0 ) {
23922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
23923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pNode);
23924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_IOERR;
23925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
23926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST);
23927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pNode->mutex ) {
23928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pNode);
23929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_NOMEM;
23930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
23933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_NOMEM;
23934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc == SQLITE_OK ) {
23937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->pNext = os2ShmNodeList;
23938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNodeList = pNode;
23939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
23940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode = NULL;
23941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else if( pNode->szRegion != szRegion ) {
23943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_IOERR_SHMSIZE;
23944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode = NULL;
23945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pNode ) {
23948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(pNode->mutex);
23949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(pLink, 0, sizeof(*pLink));
23951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pLink->pShmNode = pNode;
23953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pLink->pNext = pNode->pFirst;
23954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->pFirst = pLink;
23955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->nRef++;
23956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fd->pShmLink = pLink;
23958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(pNode->mutex);
23960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
23962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Error occured. Free our link object. */
23963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pLink);
23964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLeaveMutex();
23967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ERR_TRACE(rc, ("os2OpenSharedMemory: %d %s\n", rc, fd->zFullPathCp))
23969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
23971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Purge the os2ShmNodeList list of all entries with nRef==0.
23975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This is not a VFS shared-memory method; it is a utility function called
23977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** by VFS shared-memory methods.
23978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2PurgeShmNodes( int deleteFlag ) {
23980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pNode;
23981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode **ppNode;
23982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmEnterMutex();
23984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ppNode = &os2ShmNodeList;
23986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( *ppNode ) {
23988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode = *ppNode;
23989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pNode->nRef == 0 ) {
23991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *ppNode = pNode->pNext;
23992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pNode->apRegion ) {
23994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Prevent other processes from resizing the shared memory */
23995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmSystemLock(pNode, _SHM_WRLCK_WAIT, OS2_SHM_DMS, 1);
23996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( pNode->nRegion-- ) {
23998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_DEBUG
23999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc =
24000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosFreeMem(pNode->apRegion[pNode->nRegion]);
24002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(("SHM-PURGE pid-%d unmap region=%d %s\n",
24004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (int)GetCurrentProcessId(), pNode->nRegion,
24005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc == 0 ? "ok" : "failed"));
24006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Allow other processes to resize the shared memory */
24009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmSystemLock(pNode, _SHM_UNLCK, OS2_SHM_DMS, 1);
24010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pNode->apRegion);
24012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosClose(pNode->hLockFile);
24015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OS2_NO_WAL_LOCK_FILE
24017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( deleteFlag ) {
24018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char fileName[CCHMAXPATH];
24019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Skip "\\SHAREMEM\\" */
24020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sprintf(fileName, "%s-lck", pNode->shmBaseName + 10);
24021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* restore colon */
24022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fileName[1] = ':';
24023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosForceDelete(fileName);
24025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_free(pNode->mutex);
24029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pNode);
24031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
24033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ppNode = &pNode->pNext;
24034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLeaveMutex();
24038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This function is called to obtain a pointer to region iRegion of the
24042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** shared-memory associated with the database file id. Shared-memory regions
24043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** are numbered starting from zero. Each shared-memory region is szRegion
24044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** bytes in size.
24045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If an error occurs, an error code is returned and *pp is set to NULL.
24047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Otherwise, if the bExtend parameter is 0 and the requested shared-memory
24049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** region has not been allocated (by any client, including one running in a
24050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** separate process), then *pp is set to NULL and SQLITE_OK returned. If
24051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** bExtend is non-zero and the requested shared-memory region has not yet
24052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** been allocated, it is allocated by this function.
24053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the shared-memory region has already been allocated or is allocated by
24055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** this call as described above, then it is mapped into this processes
24056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** address space (if it is not already), *pp is set to point to the mapped
24057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** memory and SQLITE_OK returned.
24058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2ShmMap(
24060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_file *id, /* Handle open on database file */
24061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int iRegion, /* Region to retrieve */
24062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int szRegion, /* Size of regions */
24063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int bExtend, /* True to extend block if necessary */
24064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void volatile **pp /* OUT: Mapped memory */
24065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PVOID pvTemp;
24067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void **apRegion;
24068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pNode;
24069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n, rc = SQLITE_OK;
24070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char shmName[CCHMAXPATH];
24071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
24072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pp = NULL;
24074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !pFile->pShmLink )
24076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = os2OpenSharedMemory( pFile, szRegion );
24077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc == SQLITE_OK ) {
24079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode = pFile->pShmLink->pShmNode ;
24080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(pNode->mutex);
24082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( szRegion==pNode->szRegion );
24084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Unmapped region ? */
24086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( iRegion >= pNode->nRegion ) {
24087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Prevent other processes from resizing the shared memory */
24088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmSystemLock(pNode, _SHM_WRLCK_WAIT, OS2_SHM_DMS, 1);
24089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- apRegion = sqlite3_realloc(
24091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->apRegion, (iRegion + 1) * sizeof(apRegion[0]));
24092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( apRegion ) {
24094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->apRegion = apRegion;
24095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( pNode->nRegion <= iRegion ) {
24097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sprintf(shmName, "%s-%u",
24098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->shmBaseName, pNode->nRegion);
24099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosGetNamedSharedMem(&pvTemp, (PSZ)shmName,
24101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PAG_READ | PAG_WRITE) != NO_ERROR ) {
24102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !bExtend )
24103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
24104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( DosAllocSharedMem(&pvTemp, (PSZ)shmName, szRegion,
24106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PAG_READ | PAG_WRITE | PAG_COMMIT | OBJ_ANY) != NO_ERROR &&
24107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosAllocSharedMem(&pvTemp, (PSZ)shmName, szRegion,
24108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PAG_READ | PAG_WRITE | PAG_COMMIT) != NO_ERROR ) {
24109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_NOMEM;
24110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
24111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- apRegion[pNode->nRegion++] = pvTemp;
24115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* zero out remaining entries */
24118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for( n = pNode->nRegion; n <= iRegion; n++ )
24119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->apRegion[n] = NULL;
24120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Return this region (maybe zero) */
24122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pp = pNode->apRegion[iRegion];
24123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
24124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_NOMEM;
24125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Allow other processes to resize the shared memory */
24128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmSystemLock(pNode, _SHM_UNLCK, OS2_SHM_DMS, 1);
24129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
24131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Region has been mapped previously */
24132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pp = pNode->apRegion[iRegion];
24133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(pNode->mutex);
24136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ERR_TRACE(rc, ("os2ShmMap: %s iRgn = %d, szRgn = %d, bExt = %d : %d\n",
24139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->zFullPathCp, iRegion, szRegion, bExtend, rc))
24140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
24142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Close a connection to shared-memory. Delete the underlying
24146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** storage if deleteFlag is true.
24147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If there is no shared memory associated with the connection then this
24149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** routine is a harmless no-op.
24150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2ShmUnmap(
24152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_file *id, /* The underlying database file */
24153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int deleteFlag /* Delete shared-memory if true */
24154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
24156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink *pLink = pFile->pShmLink;
24157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pLink ) {
24159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nRef = -1;
24160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink **ppLink;
24161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pNode = pLink->pShmNode;
24162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(pNode->mutex);
24164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for( ppLink = &pNode->pFirst;
24166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *ppLink && *ppLink != pLink;
24167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ppLink = &(*ppLink)->pNext ) ;
24168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(*ppLink);
24170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( *ppLink ) {
24172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *ppLink = pLink->pNext;
24173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- nRef = --pNode->nRef;
24174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
24175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ERR_TRACE(1, ("os2ShmUnmap: link not found ! %s\n",
24176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pNode->shmBaseName))
24177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->pShmLink = NULL;
24180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pLink);
24181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(pNode->mutex);
24183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( nRef == 0 )
24185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2PurgeShmNodes( deleteFlag );
24186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
24189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Change the lock state for a shared-memory segment.
24193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Note that the relationship between SHAREd and EXCLUSIVE locks is a little
24195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** different here than in posix. In xShmLock(), one can go from unlocked
24196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to shared and back or from unlocked to exclusive and back. But one may
24197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** not go from shared to exclusive or from exclusive to shared.
24198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2ShmLock(
24200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_file *id, /* Database file holding the shared memory */
24201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int ofst, /* First lock to acquire or release */
24202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n, /* Number of locks to acquire or release */
24203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int flags /* What to do with the lock */
24204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 mask; /* Mask of locks to take or release */
24206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc = SQLITE_OK; /* Result code */
24207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
24208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink *p = pFile->pShmLink; /* The shared memory being locked */
24209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLink *pX; /* For looping over all siblings */
24210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmNode *pShmNode = p->pShmNode; /* Our node */
24211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( ofst>=0 && ofst+n<=SQLITE_SHM_NLOCK );
24213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( n>=1 );
24214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( flags==(SQLITE_SHM_LOCK | SQLITE_SHM_SHARED)
24215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || flags==(SQLITE_SHM_LOCK | SQLITE_SHM_EXCLUSIVE)
24216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED)
24217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE) );
24218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( n==1 || (flags & SQLITE_SHM_EXCLUSIVE)!=0 );
24219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mask = (u32)((1U<<(ofst+n)) - (1U<<ofst));
24221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( n>1 || mask==(1<<ofst) );
24222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(pShmNode->mutex);
24225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( flags & SQLITE_SHM_UNLOCK ){
24227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 allMask = 0; /* Mask of locks held by siblings */
24228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* See if any siblings hold this same lock */
24230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(pX=pShmNode->pFirst; pX; pX=pX->pNext){
24231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pX==p ) continue;
24232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (pX->exclMask & (p->exclMask|p->sharedMask))==0 );
24233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- allMask |= pX->sharedMask;
24234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Unlock the system-level locks */
24237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (mask & allMask)==0 ){
24238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = os2ShmSystemLock(pShmNode, _SHM_UNLCK, ofst+OS2_SHM_BASE, n);
24239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
24240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_OK;
24241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Undo the local locks */
24244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ){
24245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->exclMask &= ~mask;
24246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->sharedMask &= ~mask;
24247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( flags & SQLITE_SHM_SHARED ){
24249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- u32 allShared = 0; /* Union of locks held by connections other than "p" */
24250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Find out which shared locks are already held by sibling connections.
24252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If any sibling already holds an exclusive lock, go ahead and return
24253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SQLITE_BUSY.
24254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(pX=pShmNode->pFirst; pX; pX=pX->pNext){
24256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (pX->exclMask & mask)!=0 ){
24257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_BUSY;
24258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
24259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- allShared |= pX->sharedMask;
24261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Get shared locks at the system level, if necessary */
24264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ){
24265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (allShared & mask)==0 ){
24266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = os2ShmSystemLock(pShmNode, _SHM_RDLCK, ofst+OS2_SHM_BASE, n);
24267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
24268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_OK;
24269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Get the local shared locks */
24273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ){
24274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->sharedMask |= mask;
24275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
24277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Make sure no sibling connections hold locks that will block this
24278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** lock. If any do, return SQLITE_BUSY right away.
24279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(pX=pShmNode->pFirst; pX; pX=pX->pNext){
24281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (pX->exclMask & mask)!=0 || (pX->sharedMask & mask)!=0 ){
24282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = SQLITE_BUSY;
24283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
24284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Get the exclusive locks at the system level. Then if successful
24288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** also mark the local connection as being locked.
24289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ){
24291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = os2ShmSystemLock(pShmNode, _SHM_WRLCK, ofst+OS2_SHM_BASE, n);
24292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc==SQLITE_OK ){
24293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (p->sharedMask & mask)==0 );
24294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->exclMask |= mask;
24295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(pShmNode->mutex);
24300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(("SHM-LOCK shmid-%d, pid-%d got %03x,%03x %s\n",
24302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p->id, (int)GetCurrentProcessId(), p->sharedMask, p->exclMask,
24303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc ? "failed" : "ok"));
24304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ERR_TRACE(rc, ("os2ShmLock: ofst = %d, n = %d, flags = 0x%x -> %d \n",
24306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ofst, n, flags, rc))
24307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
24309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Implement a memory barrier or memory fence on shared memory.
24313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** All loads and stores begun before the barrier must complete before
24315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** any load or store begun after the barrier.
24316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2ShmBarrier(
24318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_file *id /* Database file holding the shared memory */
24319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UNUSED_PARAMETER(id);
24321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmEnterMutex();
24322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLeaveMutex();
24323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
24326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define os2ShmMap 0
24327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define os2ShmLock 0
24328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define os2ShmBarrier 0
24329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # define os2ShmUnmap 0
24330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* #ifndef SQLITE_OMIT_WAL */
24331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This vector defines all the methods that can operate on an
24335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_file for os2.
24336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const sqlite3_io_methods os2IoMethod = {
24338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 2, /* iVersion */
24339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Close, /* xClose */
24340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Read, /* xRead */
24341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Write, /* xWrite */
24342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Truncate, /* xTruncate */
24343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Sync, /* xSync */
24344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2FileSize, /* xFileSize */
24345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Lock, /* xLock */
24346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Unlock, /* xUnlock */
24347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2CheckReservedLock, /* xCheckReservedLock */
24348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2FileControl, /* xFileControl */
24349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2SectorSize, /* xSectorSize */
24350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2DeviceCharacteristics, /* xDeviceCharacteristics */
24351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmMap, /* xShmMap */
24352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmLock, /* xShmLock */
24353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmBarrier, /* xShmBarrier */
24354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2ShmUnmap /* xShmUnmap */
24355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
24356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /***************************************************************************
24359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Here ends the I/O methods that form the sqlite3_io_methods object.
24360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The next block of code implements the VFS methods.
24362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ****************************************************************************/
24363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Create a temporary file name in zBuf. zBuf must be big enough to
24366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** hold at pVfs->mxPathname characters.
24367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int getTempname(int nBuf, char *zBuf ){
24369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const char zChars[] =
24370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "abcdefghijklmnopqrstuvwxyz"
24371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
24372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "0123456789";
24373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int i, j;
24374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PSZ zTempPathCp;
24375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zTempPath[CCHMAXPATH];
24376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulDriveNum, ulDriveMap;
24377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* It's odd to simulate an io-error here, but really this is just
24379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** using the io-error infrastructure to test that SQLite handles this
24380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function failing.
24381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( return SQLITE_IOERR );
24383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3_temp_directory ) {
24385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(CCHMAXPATH-30, zTempPath, "%s", sqlite3_temp_directory);
24386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else if( DosScanEnv( (PSZ)"TEMP", &zTempPathCp ) == NO_ERROR ||
24387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosScanEnv( (PSZ)"TMP", &zTempPathCp ) == NO_ERROR ||
24388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosScanEnv( (PSZ)"TMPDIR", &zTempPathCp ) == NO_ERROR ) {
24389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zTempPathUTF = convertCpPathToUtf8( (char *)zTempPathCp );
24390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(CCHMAXPATH-30, zTempPath, "%s", zTempPathUTF);
24391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free( zTempPathUTF );
24392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else if( DosQueryCurrentDisk( &ulDriveNum, &ulDriveMap ) == NO_ERROR ) {
24393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zTempPath[0] = (char)('A' + ulDriveNum - 1);
24394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zTempPath[1] = ':';
24395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zTempPath[2] = '\0';
24396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
24397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zTempPath[0] = '\0';
24398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Strip off a trailing slashes or backslashes, otherwise we would get *
24401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- * multiple (back)slashes which causes DosOpen() to fail. *
24402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- * Trailing spaces are not allowed, either. */
24403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- j = sqlite3Strlen30(zTempPath);
24404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( j > 0 && ( zTempPath[j-1] == '\\' || zTempPath[j-1] == '/' ||
24405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zTempPath[j-1] == ' ' ) ){
24406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- j--;
24407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zTempPath[j] = '\0';
24409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* We use 20 bytes to randomize the name */
24411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(nBuf-22, zBuf,
24412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "%s\\"SQLITE_TEMP_FILE_PREFIX, zTempPath);
24413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- j = sqlite3Strlen30(zBuf);
24414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_randomness( 20, &zBuf[j] );
24415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for( i = 0; i < 20; i++, j++ ){
24416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zBuf[j] = zChars[ ((unsigned char)zBuf[j])%(sizeof(zChars)-1) ];
24417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zBuf[j] = 0;
24419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "TEMP FILENAME: %s\n", zBuf ));
24421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
24422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Turn a relative pathname into a full pathname. Write the full
24427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** pathname into zFull[]. zFull[] will be at least pVfs->mxPathname
24428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** bytes in size.
24429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2FullPathname(
24431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_vfs *pVfs, /* Pointer to vfs object */
24432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zRelative, /* Possibly relative input path */
24433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int nFull, /* Size of output buffer in bytes */
24434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zFull /* Output buffer */
24435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zRelativeCp = convertUtf8PathToCp( zRelative );
24437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zFullCp[CCHMAXPATH] = "\0";
24438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zFullUTF;
24439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc = DosQueryPathInfo( (PSZ)zRelativeCp, FIL_QUERYFULLNAME,
24440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFullCp, CCHMAXPATH );
24441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free( zRelativeCp );
24442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFullUTF = convertCpPathToUtf8( zFullCp );
24443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf( nFull, zFull, zFullUTF );
24444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free( zFullUTF );
24445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR;
24446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Open a file.
24451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Open(
24453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_vfs *pVfs, /* Not used */
24454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zName, /* Name of the file (UTF-8) */
24455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_file *id, /* Write the SQLite file handle here */
24456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int flags, /* Open mode flags */
24457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int *pOutFlags /* Status return flags */
24458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HFILE h;
24460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulOpenFlags = 0;
24461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulOpenMode = 0;
24462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG ulAction = 0;
24463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ULONG rc;
24464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2File *pFile = (os2File*)id;
24465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zUtf8Name = zName;
24466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zNameCp;
24467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char zTmpname[CCHMAXPATH];
24468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isExclusive = (flags & SQLITE_OPEN_EXCLUSIVE);
24470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isCreate = (flags & SQLITE_OPEN_CREATE);
24471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isReadWrite = (flags & SQLITE_OPEN_READWRITE);
24472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef NDEBUG
24473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isDelete = (flags & SQLITE_OPEN_DELETEONCLOSE);
24474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isReadonly = (flags & SQLITE_OPEN_READONLY);
24475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int eType = (flags & 0xFFFFFF00);
24476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int isOpenJournal = (isCreate && (
24477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- eType==SQLITE_OPEN_MASTER_JOURNAL
24478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || eType==SQLITE_OPEN_MAIN_JOURNAL
24479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || eType==SQLITE_OPEN_WAL
24480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ));
24481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UNUSED_PARAMETER(pVfs);
24484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( id!=0 );
24485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Check the following statements are true:
24487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (a) Exactly one of the READWRITE and READONLY flags must be set, and
24489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (b) if CREATE is set, then READWRITE must also be set, and
24490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (c) if EXCLUSIVE is set, then CREATE must also be set.
24491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (d) if DELETEONCLOSE is set, then CREATE must also be set.
24492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert((isReadonly==0 || isReadWrite==0) && (isReadWrite || isReadonly));
24494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(isCreate==0 || isReadWrite);
24495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(isExclusive==0 || isCreate);
24496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(isDelete==0 || isCreate);
24497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* The main DB, main journal, WAL file and master journal are never
24499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** automatically deleted. Nor are they ever temporary files. */
24500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_DB );
24501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_JOURNAL );
24502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (!isDelete && zName) || eType!=SQLITE_OPEN_MASTER_JOURNAL );
24503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( (!isDelete && zName) || eType!=SQLITE_OPEN_WAL );
24504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Assert that the upper layer has set one of the "file-type" flags. */
24506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( eType==SQLITE_OPEN_MAIN_DB || eType==SQLITE_OPEN_TEMP_DB
24507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || eType==SQLITE_OPEN_MAIN_JOURNAL || eType==SQLITE_OPEN_TEMP_JOURNAL
24508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || eType==SQLITE_OPEN_SUBJOURNAL || eType==SQLITE_OPEN_MASTER_JOURNAL
24509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || eType==SQLITE_OPEN_TRANSIENT_DB || eType==SQLITE_OPEN_WAL
24510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
24511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset( pFile, 0, sizeof(*pFile) );
24513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->h = (HFILE)-1;
24514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If the second argument to this function is NULL, generate a
24516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** temporary file name to use
24517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !zUtf8Name ){
24519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(isDelete && !isOpenJournal);
24520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = getTempname(CCHMAXPATH, zTmpname);
24521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc!=SQLITE_OK ){
24522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
24523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zUtf8Name = zTmpname;
24525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isReadWrite ){
24528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenMode |= OPEN_ACCESS_READWRITE;
24529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
24530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenMode |= OPEN_ACCESS_READONLY;
24531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Open in random access mode for possibly better speed. Allow full
24534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sharing because file locks will provide exclusive access when needed.
24535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The handle should not be inherited by child processes and we don't
24536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** want popups from the critical error handler.
24537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenMode |= OPEN_FLAGS_RANDOM | OPEN_SHARE_DENYNONE |
24539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_FAIL_ON_ERROR;
24540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* SQLITE_OPEN_EXCLUSIVE is used to make sure that a new file is
24542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** created. SQLite doesn't use it to indicate "exclusive access"
24543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** as it is usually understood.
24544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isExclusive ){
24546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Creates a new file, only if it does not already exist. */
24547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If the file exists, it fails. */
24548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenFlags |= OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS;
24549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( isCreate ){
24550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Open existing file, or create if it doesn't exist */
24551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenFlags |= OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_OPEN_IF_EXISTS;
24552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
24553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Opens a file, only if it exists. */
24554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenFlags |= OPEN_ACTION_FAIL_IF_NEW | OPEN_ACTION_OPEN_IF_EXISTS;
24555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zNameCp = convertUtf8PathToCp( zUtf8Name );
24558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosOpen( (PSZ)zNameCp,
24559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &h,
24560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &ulAction,
24561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0L,
24562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILE_NORMAL,
24563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenFlags,
24564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ulOpenMode,
24565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (PEAOP2)NULL );
24566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free( zNameCp );
24567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc != NO_ERROR ){
24569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "OPEN Invalid handle rc=%d: zName=%s, ulAction=%#lx, ulFlags=%#lx, ulMode=%#lx\n",
24570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc, zUtf8Name, ulAction, ulOpenFlags, ulOpenMode ));
24571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isReadWrite ){
24573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return os2Open( pVfs, zName, id,
24574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((flags|SQLITE_OPEN_READONLY)&~(SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE)),
24575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pOutFlags );
24576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
24577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_CANTOPEN;
24578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pOutFlags ){
24582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pOutFlags = isReadWrite ? SQLITE_OPEN_READWRITE : SQLITE_OPEN_READONLY;
24583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2FullPathname( pVfs, zUtf8Name, sizeof( zTmpname ), zTmpname );
24586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->zFullPathCp = convertUtf8PathToCp( zTmpname );
24587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->pMethod = &os2IoMethod;
24588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->flags = flags;
24589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pFile->h = h;
24590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OpenCounter(+1);
24592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "OPEN %d pOutFlags=%d\n", pFile->h, pOutFlags ));
24593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
24594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Delete the named file.
24598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Delete(
24600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_vfs *pVfs, /* Not used on os2 */
24601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zFilename, /* Name of file to delete */
24602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int syncDir /* Not used on os2 */
24603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
24605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zFilenameCp;
24606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( return SQLITE_IOERR_DELETE );
24607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilenameCp = convertUtf8PathToCp( zFilename );
24608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosDelete( (PSZ)zFilenameCp );
24609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free( zFilenameCp );
24610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "DELETE \"%s\"\n", zFilename ));
24611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (rc == NO_ERROR ||
24612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc == ERROR_FILE_NOT_FOUND ||
24613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc == ERROR_PATH_NOT_FOUND ) ? SQLITE_OK : SQLITE_IOERR_DELETE;
24614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Check the existance and status of a file.
24618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Access(
24620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_vfs *pVfs, /* Not used on os2 */
24621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zFilename, /* Name of file to check */
24622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int flags, /* Type of test to make on this file */
24623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int *pOut /* Write results here */
24624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
24625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
24626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- FILESTATUS3 fsts3ConfigInfo;
24627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zFilenameCp;
24628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UNUSED_PARAMETER(pVfs);
24630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SimulateIOError( return SQLITE_IOERR_ACCESS; );
24631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zFilenameCp = convertUtf8PathToCp( zFilename );
24633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosQueryPathInfo( (PSZ)zFilenameCp, FIL_STANDARD,
24634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- &fsts3ConfigInfo, sizeof(FILESTATUS3) );
24635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free( zFilenameCp );
24636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "ACCESS fsts3ConfigInfo.attrFile=%d flags=%d rc=%d\n",
24637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fsts3ConfigInfo.attrFile, flags, rc ));
24638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- switch( flags ){
24640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_ACCESS_EXISTS:
24641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* For an SQLITE_ACCESS_EXISTS query, treat a zero-length file
24642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** as if it does not exist.
24643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fsts3ConfigInfo.cbFile == 0 )
24645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = ERROR_FILE_NOT_FOUND;
24646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
24647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_ACCESS_READ:
24648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
24649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_ACCESS_READWRITE:
24650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fsts3ConfigInfo.attrFile & FILE_READONLY )
24651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = ERROR_ACCESS_DENIED;
24652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
24653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- default:
24654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = ERROR_FILE_NOT_FOUND;
24655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( !"Invalid flags argument" );
24656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pOut = (rc == NO_ERROR);
24659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- OSTRACE(( "ACCESS %s flags %d: rc=%d\n", zFilename, flags, *pOut ));
24660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
24662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifndef SQLITE_OMIT_LOAD_EXTENSION
24666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Interfaces for opening a shared library, finding entry points
24668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** within the shared library, and closing the shared library.
24669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Interfaces for opening a shared library, finding entry points
24672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** within the shared library, and closing the shared library.
24673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void *os2DlOpen(sqlite3_vfs *pVfs, const char *zFilename){
24675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HMODULE hmod;
24676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
24677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zFilenameCp = convertUtf8PathToCp(zFilename);
24678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosLoadModule(NULL, 0, (PSZ)zFilenameCp, &hmod);
24679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- free(zFilenameCp);
24680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc != NO_ERROR ? 0 : (void*)hmod;
24681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** A no-op since the error code is returned on the DosLoadModule call.
24684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** os2Dlopen returns zero if DosLoadModule is not successful.
24685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2DlError(sqlite3_vfs *pVfs, int nBuf, char *zBufOut){
24687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* no-op */
24688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void (*os2DlSym(sqlite3_vfs *pVfs, void *pHandle, const char *zSymbol))(void){
24690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PFN pfn;
24691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- APIRET rc;
24692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosQueryProcAddr((HMODULE)pHandle, 0L, (PSZ)zSymbol, &pfn);
24693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rc != NO_ERROR ){
24694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* if the symbol itself was not found, search again for the same
24695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- * symbol with an extra underscore, that might be needed depending
24696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- * on the calling convention */
24697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char _zSymbol[256] = "_";
24698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- strncat(_zSymbol, zSymbol, 254);
24699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = DosQueryProcAddr((HMODULE)pHandle, 0L, (PSZ)_zSymbol, &pfn);
24700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc != NO_ERROR ? 0 : (void(*)(void))pfn;
24702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void os2DlClose(sqlite3_vfs *pVfs, void *pHandle){
24704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosFreeModule((HMODULE)pHandle);
24705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else /* if SQLITE_OMIT_LOAD_EXTENSION is defined: */
24707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define os2DlOpen 0
24708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define os2DlError 0
24709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define os2DlSym 0
24710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define os2DlClose 0
24711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Write up to nBuf bytes of randomness into zBuf.
24716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Randomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf ){
24718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n = 0;
24719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(SQLITE_TEST)
24720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- n = nBuf;
24721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memset(zBuf, 0, nBuf);
24722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #else
24723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int i;
24724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PPIB ppib;
24725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PTIB ptib;
24726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DATETIME dt;
24727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static unsigned c = 0;
24728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Ordered by variation probability */
24729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static ULONG svIdx[6] = { QSV_MS_COUNT, QSV_TIME_LOW,
24730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- QSV_MAXPRMEM, QSV_MAXSHMEM,
24731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- QSV_TOTAVAILMEM, QSV_TOTRESMEM };
24732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 8 bytes; timezone and weekday don't increase the randomness much */
24734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (int)sizeof(dt)-3 <= nBuf - n ){
24735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- c += 0x0100;
24736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosGetDateTime(&dt);
24737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dt.year = (USHORT)((dt.year - 1900) | c);
24738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- memcpy(&zBuf[n], &dt, sizeof(dt)-3);
24739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- n += sizeof(dt)-3;
24740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* 4 bytes; PIDs and TIDs are 16 bit internally, so combine them */
24743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (int)sizeof(ULONG) <= nBuf - n ){
24744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosGetInfoBlocks(&ptib, &ppib);
24745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *(PULONG)&zBuf[n] = MAKELONG(ppib->pib_ulpid,
24746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ptib->tib_ptib2->tib2_ultid);
24747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- n += sizeof(ULONG);
24748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Up to 6 * 4 bytes; variables depend on the system state */
24751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for( i = 0; i < 6 && (int)sizeof(ULONG) <= nBuf - n; i++ ){
24752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosQuerySysInfo(svIdx[i], svIdx[i],
24753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (PULONG)&zBuf[n], sizeof(ULONG));
24754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- n += sizeof(ULONG);
24755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return n;
24759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Sleep for a little while. Return the amount of time slept.
24763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The argument is the number of microseconds we want to sleep.
24764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The return value is the number of microseconds of sleep actually
24765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** requested from the underlying operating system, a number which
24766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** might be greater than or equal to the argument, but not less
24767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** than the argument.
24768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2Sleep( sqlite3_vfs *pVfs, int microsec ){
24770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosSleep( (microsec/1000) );
24771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return microsec;
24772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The following variable, if set to a non-zero value, becomes the result
24776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** returned from sqlite3OsCurrentTime(). This is used for testing.
24777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_TEST
24779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_current_time = 0;
24780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Find the current time (in Universal Coordinated Time). Write into *piNow
24784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the current time and date as a Julian Day number times 86_400_000. In
24785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** other words, write into *piNow the number of milliseconds since the Julian
24786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** epoch of noon in Greenwich on November 24, 4714 B.C according to the
24787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** proleptic Gregorian calendar.
24788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** On success, return 0. Return 1 if the time and date cannot be found.
24790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2CurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *piNow){
24792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_TEST
24793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static const sqlite3_int64 unixEpoch = 24405875*(sqlite3_int64)8640000;
24794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int year, month, datepart, timepart;
24796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DATETIME dt;
24798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- DosGetDateTime( &dt );
24799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- year = dt.year;
24801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- month = dt.month;
24802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Calculations from http://www.astro.keele.ac.uk/~rno/Astronomy/hjd.html
24804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** http://www.astro.keele.ac.uk/~rno/Astronomy/hjd-0.1.c
24805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Calculate the Julian days
24806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- datepart = (int)dt.day - 32076 +
24808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 1461*(year + 4800 + (month - 14)/12)/4 +
24809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 367*(month - 2 - (month - 14)/12*12)/12 -
24810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 3*((year + 4900 + (month - 14)/12)/100)/4;
24811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Time in milliseconds, hours to noon added */
24813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- timepart = 12*3600*1000 + dt.hundredths*10 + dt.seconds*1000 +
24814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((int)dt.minutes + dt.timezone)*60*1000 + dt.hours*3600*1000;
24815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *piNow = (sqlite3_int64)datepart*86400*1000 + timepart;
24817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef SQLITE_TEST
24819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3_current_time ){
24820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *piNow = 1000*(sqlite3_int64)sqlite3_current_time + unixEpoch;
24821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
24823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- UNUSED_PARAMETER(pVfs);
24825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
24826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Find the current time (in Universal Coordinated Time). Write the
24830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** current time and date as a Julian Day number into *prNow and
24831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** return 0. Return 1 if the time and date cannot be found.
24832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2CurrentTime( sqlite3_vfs *pVfs, double *prNow ){
24834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rc;
24835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_int64 i;
24836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = os2CurrentTimeInt64(pVfs, &i);
24837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !rc ){
24838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *prNow = i/86400000.0;
24839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return rc;
24841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The idea is that this function works like a combination of
24845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** GetLastError() and FormatMessage() on windows (or errno and
24846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** strerror_r() on unix). After an error is returned by an OS
24847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function, SQLite calls this function with zBuf pointing to
24848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a buffer of nBuf bytes. The OS layer should populate the
24849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** buffer with a nul-terminated UTF-8 encoded error message
24850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** describing the last IO error to have occurred within the calling
24851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** thread.
24852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If the error message is too large for the supplied buffer,
24854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** it should be truncated. The return value of xGetLastError
24855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is zero if the error message fits in the buffer, or non-zero
24856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** otherwise (if the message was truncated). If non-zero is returned,
24857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** then it is not necessary to include the nul-terminator character
24858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in the output buffer.
24859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Not supplying an error message will have no adverse effect
24861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** on SQLite. It is fine to have an implementation that never
24862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** returns an error message:
24863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** int xGetLastError(sqlite3_vfs *pVfs, int nBuf, char *zBuf){
24865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** assert(zBuf[0]=='\0');
24866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** return 0;
24867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** }
24868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
24869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** However if an error message is supplied, it will be incorporated
24870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** by sqlite into the error message available to the user using
24871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** sqlite3_errmsg(), possibly making IO errors easier to debug.
24872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int os2GetLastError(sqlite3_vfs *pVfs, int nBuf, char *zBuf){
24874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert(zBuf[0]=='\0');
24875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
24876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
24879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Initialize and deinitialize the operating system interface.
24880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
24881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_os_init(void){
24882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static sqlite3_vfs os2Vfs = {
24883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 3, /* iVersion */
24884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sizeof(os2File), /* szOsFile */
24885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CCHMAXPATH, /* mxPathname */
24886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, /* pNext */
24887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "os2", /* zName */
24888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, /* pAppData */
24889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Open, /* xOpen */
24891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Delete, /* xDelete */
24892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Access, /* xAccess */
24893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2FullPathname, /* xFullPathname */
24894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2DlOpen, /* xDlOpen */
24895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2DlError, /* xDlError */
24896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2DlSym, /* xDlSym */
24897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2DlClose, /* xDlClose */
24898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Randomness, /* xRandomness */
24899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2Sleep, /* xSleep */
24900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2CurrentTime, /* xCurrentTime */
24901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2GetLastError, /* xGetLastError */
24902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- os2CurrentTimeInt64, /* xCurrentTimeInt64 */
24903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, /* xSetSystemCall */
24904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, /* xGetSystemCall */
24905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0 /* xNextSystemCall */
24906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
24907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_vfs_register(&os2Vfs, 1);
24908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- initUconvObjects();
24909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* sqlite3OSTrace = 1; */
24910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
24911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_os_end(void){
24913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- freeUconvObjects();
24914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
24915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
24916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* SQLITE_OS_OS2 */
24918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
24919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /************** End of os_os2.c **********************************************/
24920 22516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/************** Begin file os_unix.c *****************************************/
24921 22517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
24922 22518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 2004 May 22
24923 22519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
24924 22520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The author disclaims copyright to this source code. In place of
@@ -59054,18 +56650,18 @@
59054 56650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
59055 56651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Release all resources associated with an sqlite3_backup* handle.
59056 56652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
59057 56653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_API int sqlite3_backup_finish(sqlite3_backup *p){
59058 56654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_backup **pp; /* Ptr to head of pagers backup list */
59059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- MUTEX_LOGIC( sqlite3_mutex *mutex; ) /* Mutex to protect source database */
56655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3 *pSrcDb; /* Source database connection */
59060 56656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc; /* Value to return */
59061 56657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59062 56658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Enter the mutexes */
59063 56659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p==0 ) return SQLITE_OK;
59064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(p->pSrcDb->mutex);
56660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSrcDb = p->pSrcDb;
56661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_enter(pSrcDb->mutex);
59065 56662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeEnter(p->pSrc);
59066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- MUTEX_LOGIC( mutex = p->pSrcDb->mutex; )
59067 56663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pDestDb ){
59068 56664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_enter(p->pDestDb->mutex);
59069 56665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59070 56666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59071 56667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Detach this backup from the source pager. */
@@ -59087,20 +56683,20 @@
59087 56683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = (p->rc==SQLITE_DONE) ? SQLITE_OK : p->rc;
59088 56684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3Error(p->pDestDb, rc, 0);
59089 56685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59090 56686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Exit the mutexes and free the backup context structure. */
59091 56687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pDestDb ){
59092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(p->pDestDb->mutex);
56688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3LeaveMutexAndCloseZombie(p->pDestDb);
59093 56689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59094 56690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeLeave(p->pSrc);
59095 56691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pDestDb ){
59096 56692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* EVIDENCE-OF: R-64852-21591 The sqlite3_backup object is created by a
59097 56693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** call to sqlite3_backup_init() and is destroyed by a call to
59098 56694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sqlite3_backup_finish(). */
59099 56695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(p);
59100 56696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(mutex);
56697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3LeaveMutexAndCloseZombie(pSrcDb);
59102 56698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
59103 56699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
59104 56700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59105 56701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
59106 56702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return the number of pages still to be backed up as of the most recent
@@ -62860,10 +60456,11 @@
62860 60456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SQLITE_PRIVATE void sqlite3VdbeDelete(Vdbe *p){
62861 60457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db;
62862 60458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
62863 60459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( NEVER(p==0) ) return;
62864 60460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db = p->db;
60461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3_mutex_held(db->mutex) );
62865 60462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p->pPrev ){
62866 60463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pPrev->pNext = p->pNext;
62867 60464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
62868 60465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db->pVdbe==p );
62869 60466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db->pVdbe = p->pNext;
@@ -63699,21 +61296,15 @@
63699 61296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pointer is a harmless no-op. */
63700 61297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = SQLITE_OK;
63701 61298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
63702 61299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Vdbe *v = (Vdbe*)pStmt;
63703 61300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3 *db = v->db;
63704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SQLITE_THREADSAFE
63705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex *mutex;
63706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
63707 61301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( vdbeSafety(v) ) return SQLITE_MISUSE_BKPT;
63708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if SQLITE_THREADSAFE
63709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mutex = v->db->mutex;
63710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif
63711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_enter(mutex);
61302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_enter(db->mutex);
63712 61303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3VdbeFinalize(v);
63713 61304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3ApiExit(db, rc);
63714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(mutex);
61305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3LeaveMutexAndCloseZombie(db);
63715 61306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
63716 61307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rc;
63717 61308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
63718 61309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
63719 61310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -70017,11 +67608,10 @@
70017 67608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bl.pC->isTable || pOp->opcode!=OP_RowData );
70018 67609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bl.pC->isIndex || pOp->opcode==OP_RowData );
70019 67610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bl.pC!=0 );
70020 67611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bl.pC->nullRow==0 );
70021 67612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bl.pC->pseudoTableReg==0 );
70022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( !u.bl.pC->isSorter );
70023 67613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( u.bl.pC->pCursor!=0 );
70024 67614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u.bl.pCrsr = u.bl.pC->pCursor;
70025 67615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( sqlite3BtreeCursorIsValid(u.bl.pCrsr) );
70026 67616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
70027 67617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The OP_RowKey and OP_RowData opcodes always follow OP_NotExists or
@@ -88019,12 +85609,23 @@
88019 85609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
88020 85610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void quoteFunc(sqlite3_context *context, int argc, sqlite3_value **argv){
88021 85611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( argc==1 );
88022 85612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(argc);
88023 85613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( sqlite3_value_type(argv[0]) ){
88024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case SQLITE_INTEGER:
88025 85614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_FLOAT: {
85615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ double r1, r2;
85616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zBuf[50];
85617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ r1 = sqlite3_value_double(argv[0]);
85618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_snprintf(sizeof(zBuf), zBuf, "%!.15g", r1);
85619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3AtoF(zBuf, &r2, 20, SQLITE_UTF8);
85620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( r1!=r2 ){
85621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_snprintf(sizeof(zBuf), zBuf, "%!.20e", r1);
85622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
85623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_text(context, zBuf, -1, SQLITE_TRANSIENT);
85624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
85625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
85626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case SQLITE_INTEGER: {
88026 85627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_result_value(context, argv[0]);
88027 85628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
88028 85629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
88029 85630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SQLITE_BLOB: {
88030 85631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zText = 0;
@@ -114347,18 +111948,30 @@
114347 111948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3BtreeLeaveAll(db);
114348 111949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
114349 111950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
UNUSED_PARAMETER(db);
114350 111951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
114351 111952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
111953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
111954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
111955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return TRUE if database connection db has unfinalized prepared
111956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** statements or unfinished sqlite3_backup objects.
111957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
111958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int connectionIsBusy(sqlite3 *db){
111959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int j;
111960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( sqlite3_mutex_held(db->mutex) );
111961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->pVdbe ) return 1;
111962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<db->nDb; j++){
111963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Btree *pBt = db->aDb[j].pBt;
111964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pBt && sqlite3BtreeIsInBackup(pBt) ) return 1;
111965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
111966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
111967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
114352 111968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114353 111969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
114354 111970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Close an existing SQLite database
114355 111971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
114356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_API int sqlite3_close(sqlite3 *db){
114357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- HashElem *i; /* Hash table iterator */
114358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int j;
114359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
111972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int sqlite3Close(sqlite3 *db, int forceZombie){
114360 111973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !db ){
114361 111974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_OK;
114362 111975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114363 111976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !sqlite3SafetyCheckSickOrOk(db) ){
114364 111977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_MISUSE_BKPT;
@@ -114375,28 +111988,66 @@
114375 111988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** SQL statements below, as the v-table implementation may be storing
114376 111989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** some prepared statements internally.
114377 111990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
114378 111991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3VtabRollback(db);
114379 111992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* If there are any outstanding VMs, return SQLITE_BUSY. */
114381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db->pVdbe ){
114382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Error(db, SQLITE_BUSY,
114383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "unable to close due to unfinalised statements");
111993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Legacy behavior (sqlite3_close() behavior) is to return
111994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SQLITE_BUSY if the connection can not be closed immediately.
111995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
111996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !forceZombie && connectionIsBusy(db) ){
111997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3Error(db, SQLITE_BUSY, "unable to close due to unfinalized "
111998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "statements or unfinished backups");
114384 111999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_mutex_leave(db->mutex);
114385 112000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_BUSY;
114386 112001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( sqlite3SafetyCheckSickOrOk(db) );
114388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
114389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(j=0; j<db->nDb; j++){
114390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Btree *pBt = db->aDb[j].pBt;
114391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pBt && sqlite3BtreeIsInBackup(pBt) ){
114392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3Error(db, SQLITE_BUSY,
114393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "unable to close due to unfinished backup operation");
114394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_mutex_leave(db->mutex);
114395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_BUSY;
114396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
114397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
112002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
112003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Convert the connection into a zombie and then close it.
112004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
112005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db->magic = SQLITE_MAGIC_ZOMBIE;
112006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3LeaveMutexAndCloseZombie(db);
112007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_OK;
112008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
112010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
112011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Two variations on the public interface for closing a database
112012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** connection. The sqlite3_close() version returns SQLITE_BUSY and
112013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** leaves the connection option if there are unfinalized prepared
112014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** statements or unfinished sqlite3_backups. The sqlite3_close_v2()
112015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** version forces the connection to become a zombie if there are
112016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** unclosed resources, and arranges for deallocation when the last
112017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** prepare statement or sqlite3_backup closes.
112018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
112019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_close(sqlite3 *db){ return sqlite3Close(db,0); }
112020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_API int sqlite3_close_v2(sqlite3 *db){ return sqlite3Close(db,1); }
112021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
112022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
112023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
112024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Close the mutex on database connection db.
112025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
112026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Furthermore, if database connection db is a zombie (meaning that there
112027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** has been a prior call to sqlite3_close(db) or sqlite3_close_v2(db)) and
112028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** every sqlite3_stmt has now been finalized and every sqlite3_backup has
112029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** finished, then free all resources.
112030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
112031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3 *db){
112032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ HashElem *i; /* Hash table iterator */
112033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int j;
112034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
112035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If there are outstanding sqlite3_stmt or sqlite3_backup objects
112036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** or if the connection has not yet been closed by sqlite3_close_v2(),
112037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** then just leave the mutex and return.
112038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
112039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db->magic!=SQLITE_MAGIC_ZOMBIE || connectionIsBusy(db) ){
112040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_mutex_leave(db->mutex);
112041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
112042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
112043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
112044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If we reach this point, it means that the database connection has
112045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** closed all sqlite3_stmt and sqlite3_backup objects and has been
112046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pased to sqlite3_close (meaning that it is a zombie). Therefore,
112047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** go ahead and free all resources.
112048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
114398 112049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114399 112050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Free any outstanding Savepoint structures. */
114400 112051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3CloseSavepoints(db);
114401 112052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114402 112053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Close all database connections */
@@ -114481,11 +112132,10 @@
114481 112132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( db->lookaside.nOut==0 ); /* Fails on a lookaside memory leak */
114482 112133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db->lookaside.bMalloced ){
114483 112134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(db->lookaside.pStart);
114484 112135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114485 112136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_free(db);
114486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
114487 112137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114488 112138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
114489 112139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
114490 112140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Rollback all database files. If tripCode is not SQLITE_OK, then
114491 112141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** any open cursors are invalidated ("tripped" - as in "tripping a circuit
@@ -115648,13 +113298,11 @@
115648 113298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nOpt==4 && memcmp("mode", zOpt, 4)==0 ){
115649 113299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static struct OpenMode aOpenMode[] = {
115650 113300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "ro", SQLITE_OPEN_READONLY },
115651 113301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "rw", SQLITE_OPEN_READWRITE },
115652 113302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "rwc", SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE },
115653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "memory",
115654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE
115655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | SQLITE_OPEN_MEMORY },
113303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "memory", SQLITE_OPEN_MEMORY },
115656 113304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ 0, 0 }
115657 113305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
115658 113306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
115659 113307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask = SQLITE_OPEN_READONLY | SQLITE_OPEN_READWRITE
115660 113308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
| SQLITE_OPEN_CREATE | SQLITE_OPEN_MEMORY;
@@ -125936,14 +123584,13 @@
125936 123584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* #include <string.h> */
125937 123585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125938 123586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
125939 123587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of a special SQL scalar function for testing tokenizers
125940 123588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** designed to be used in concert with the Tcl testing framework. This
125941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** function must be called with two arguments:
123589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** function must be called with two or more arguments:
125942 123590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SELECT <function-name>(<key-name>, <input-string>);
125944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** SELECT <function-name>(<key-name>, <pointer>);
123591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** SELECT <function-name>(<key-name>, ..., <input-string>);
125945 123592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
125946 123593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** where <function-name> is the name passed as the second argument
125947 123594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** to the sqlite3Fts3InitHashTable() function (e.g. 'fts3_tokenizer')
125948 123595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** concatenated with the string '_test' (e.g. 'fts3_tokenizer_test').
125949 123596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -125976,31 +123623,31 @@
125976 123623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName;
125977 123624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nName;
125978 123625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zInput;
125979 123626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nInput;
125980 123627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zArg = 0;
123628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *azArg[64];
125982 123629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125983 123630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zToken;
125984 123631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nToken;
125985 123632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iStart;
125986 123633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iEnd;
125987 123634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iPos;
123635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
125988 123636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125989 123637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Tcl_Obj *pRet;
125990 123638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- assert( argc==2 || argc==3 );
123639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( argc<2 ){
123640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_result_error(context, "insufficient arguments", -1);
123641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
123642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
125992 123643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125993 123644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nName = sqlite3_value_bytes(argv[0]);
125994 123645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zName = (const char *)sqlite3_value_text(argv[0]);
125995 123646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nInput = sqlite3_value_bytes(argv[argc-1]);
125996 123647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zInput = (const char *)sqlite3_value_text(argv[argc-1]);
125997 123648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
125998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( argc==3 ){
125999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zArg = (const char *)sqlite3_value_text(argv[1]);
126000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
126001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
126002 123649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pHash = (Fts3Hash *)sqlite3_user_data(context);
126003 123650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = (sqlite3_tokenizer_module *)sqlite3Fts3HashFind(pHash, zName, nName+1);
126004 123651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126005 123652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !p ){
126006 123653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zErr = sqlite3_mprintf("unknown tokenizer: %s", zName);
@@ -126010,11 +123657,15 @@
126010 123657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126011 123658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126012 123659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pRet = Tcl_NewObj();
126013 123660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Tcl_IncrRefCount(pRet);
126014 123661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( SQLITE_OK!=p->xCreate(zArg ? 1 : 0, &zArg, &pTokenizer) ){
123662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=1; i<argc-1; i++){
123663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ azArg[i-1] = (const char *)sqlite3_value_text(argv[i]);
123664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
123665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
123666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( SQLITE_OK!=p->xCreate(argc-2, azArg, &pTokenizer) ){
126016 123667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zErr = "error in xCreate()";
126017 123668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto finish;
126018 123669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126019 123670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pTokenizer->pModule = p;
126020 123671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( sqlite3Fts3OpenTokenizer(pTokenizer, 0, zInput, nInput, &pCsr) ){
@@ -126194,14 +123845,11 @@
126194 123845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK==rc ){
126195 123846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_create_function(db, zName, 2, any, p, scalarFunc, 0, 0);
126196 123847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126197 123848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#ifdef SQLITE_TEST
126198 123849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK==rc ){
126199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3_create_function(db, zTest, 2, any, p, testFunc, 0, 0);
126200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
126201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( SQLITE_OK==rc ){
126202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3_create_function(db, zTest, 3, any, p, testFunc, 0, 0);
123850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3_create_function(db, zTest, -1, any, p, testFunc, 0, 0);
126203 123851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126204 123852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( SQLITE_OK==rc ){
126205 123853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_create_function(db, zTest2, 0, any, pdb, intTestFunc, 0, 0);
126206 123854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
126207 123855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
@@ -126588,11 +124236,12 @@
126588 124236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** fts3SegReaderFirstDocid()
126589 124237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** fts3SegReaderNextDocid()
126590 124238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
126591 124239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct Fts3SegReader {
126592 124240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iIdx; /* Index within level, or 0x7FFFFFFF for PT */
126593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int bLookup; /* True for a lookup only */
124241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 bLookup; /* True for a lookup only */
124242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ u8 rootOnly; /* True for a root-only reader */
126594 124243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126595 124244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iStartBlock; /* Rowid of first leaf block to traverse */
126596 124245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iLeafEndBlock; /* Rowid of final leaf block to traverse */
126597 124246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iEndBlock; /* Rowid of final block in segment (or 0) */
126598 124247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iCurrentBlock; /* Current leaf block (or 0) */
@@ -126622,11 +124271,11 @@
126622 124271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nOffsetList; /* For descending pending seg-readers only */
126623 124272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iDocid;
126624 124273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
126625 124274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126626 124275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define fts3SegReaderIsPending(p) ((p)->ppNextElem!=0)
126627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define fts3SegReaderIsRootOnly(p) ((p)->aNode==(char *)&(p)[1])
124276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define fts3SegReaderIsRootOnly(p) ((p)->rootOnly!=0)
126628 124277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126629 124278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
126630 124279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** An instance of this structure is used to create a segment b-tree in the
126631 124280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** database. The internal details of this type are only accessed by the
126632 124281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** following functions:
@@ -128033,18 +125682,19 @@
128033 125682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !pReader ){
128034 125683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_NOMEM;
128035 125684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
128036 125685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(pReader, 0, sizeof(Fts3SegReader));
128037 125686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pReader->iIdx = iAge;
128038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pReader->bLookup = bLookup;
125687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pReader->bLookup = bLookup!=0;
128039 125688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pReader->iStartBlock = iStartLeaf;
128040 125689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pReader->iLeafEndBlock = iEndLeaf;
128041 125690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pReader->iEndBlock = iEndBlock;
128042 125691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
128043 125692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nExtra ){
128044 125693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* The entire segment is stored in the root node. */
128045 125694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pReader->aNode = (char *)&pReader[1];
125695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pReader->rootOnly = 1;
128046 125696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pReader->nNode = nRoot;
128047 125697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memcpy(pReader->aNode, zRoot, nRoot);
128048 125698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(&pReader->aNode[nRoot], 0, FTS3_NODE_PADDING);
128049 125699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
128050 125700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pReader->iCurrentBlock = iStartLeaf-1;
@@ -133438,10 +131088,12 @@
133438 131088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct unicode_cursor unicode_cursor;
133439 131089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133440 131090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct unicode_tokenizer {
133441 131091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_tokenizer base;
133442 131092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bRemoveDiacritic;
131093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nException;
131094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *aiException;
133443 131095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
133444 131096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133445 131097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct unicode_cursor {
133446 131098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_tokenizer_cursor base;
133447 131099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const unsigned char *aInput; /* Input text being tokenized */
@@ -133450,10 +131102,125 @@
133450 131102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iToken; /* Index of next token to be returned */
133451 131103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zToken; /* storage for current token */
133452 131104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nAlloc; /* space allocated at zToken */
133453 131105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
133454 131106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
131107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
131109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Destroy a tokenizer allocated by unicodeCreate().
131110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
131111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int unicodeDestroy(sqlite3_tokenizer *pTokenizer){
131112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTokenizer ){
131113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unicode_tokenizer *p = (unicode_tokenizer *)pTokenizer;
131114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(p->aiException);
131115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_free(p);
131116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_OK;
131118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
131121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** As part of a tokenchars= or separators= option, the CREATE VIRTUAL TABLE
131122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** statement has specified that the tokenizer for this table shall consider
131123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** all characters in string zIn/nIn to be separators (if bAlnum==0) or
131124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** token characters (if bAlnum==1).
131125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
131126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** For each codepoint in the zIn/nIn string, this function checks if the
131127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** sqlite3FtsUnicodeIsalnum() function already returns the desired result.
131128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If so, no action is taken. Otherwise, the codepoint is added to the
131129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** unicode_tokenizer.aiException[] array. For the purposes of tokenization,
131130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the return value of sqlite3FtsUnicodeIsalnum() is inverted for all
131131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** codepoints in the aiException[] array.
131132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
131133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If a standalone diacritic mark (one that sqlite3FtsUnicodeIsdiacritic()
131134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** identifies as a diacritic) occurs in the zIn/nIn string it is ignored.
131135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** It is not possible to change the behaviour of the tokenizer with respect
131136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to these codepoints.
131137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
131138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int unicodeAddExceptions(
131139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unicode_tokenizer *p, /* Tokenizer to add exceptions to */
131140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bAlnum, /* Replace Isalnum() return value with this */
131141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zIn, /* Array of characters to make exceptions */
131142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nIn /* Length of z in bytes */
131143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
131144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const unsigned char *z = (const unsigned char *)zIn;
131145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const unsigned char *zTerm = &z[nIn];
131146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCode;
131147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nEntry = 0;
131148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( bAlnum==0 || bAlnum==1 );
131150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( z<zTerm ){
131152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ READ_UTF8(z, zTerm, iCode);
131153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (sqlite3FtsUnicodeIsalnum(iCode) & 0xFFFFFFFE)==0 );
131154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3FtsUnicodeIsalnum(iCode)!=bAlnum
131155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && sqlite3FtsUnicodeIsdiacritic(iCode)==0
131156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
131157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nEntry++;
131158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nEntry ){
131162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *aNew; /* New aiException[] array */
131163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nNew; /* Number of valid entries in array aNew[] */
131164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aNew = sqlite3_realloc(p->aiException, (p->nException+nEntry)*sizeof(int));
131166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( aNew==0 ) return SQLITE_NOMEM;
131167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nNew = p->nException;
131168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z = (const unsigned char *)zIn;
131170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( z<zTerm ){
131171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ READ_UTF8(z, zTerm, iCode);
131172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3FtsUnicodeIsalnum(iCode)!=bAlnum
131173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && sqlite3FtsUnicodeIsdiacritic(iCode)==0
131174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
131175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i, j;
131176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<nNew && aNew[i]<iCode; i++);
131177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=nNew; j>i; j--) aNew[j] = aNew[j-1];
131178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aNew[i] = iCode;
131179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nNew++;
131180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->aiException = aNew;
131183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->nException = nNew;
131184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return SQLITE_OK;
131187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
131190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return true if the p->aiException[] array contains the value iCode.
131191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
131192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int unicodeIsException(unicode_tokenizer *p, int iCode){
131193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->nException>0 ){
131194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *a = p->aiException;
131195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iLo = 0;
131196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iHi = p->nException-1;
131197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( iHi>=iLo ){
131199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iTest = (iHi + iLo) / 2;
131200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( iCode==a[iTest] ){
131201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 1;
131202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( iCode>a[iTest] ){
131203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iLo = iTest+1;
131204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
131205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iHi = iTest-1;
131206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
131211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
131213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
131214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Return true if, for the purposes of tokenization, codepoint iCode is
131215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** considered a token character (not a separator).
131216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
131217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int unicodeIsAlnum(unicode_tokenizer *p, int iCode){
131218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( (sqlite3FtsUnicodeIsalnum(iCode) & 0xFFFFFFFE)==0 );
131219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return sqlite3FtsUnicodeIsalnum(iCode) ^ unicodeIsException(p, iCode);
131220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
133455 131222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
133456 131223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Create a new tokenizer instance.
133457 131224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
133458 131225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int unicodeCreate(
133459 131226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nArg, /* Size of array argv[] */
@@ -133460,43 +131227,45 @@
133460 131227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char * const *azArg, /* Tokenizer creation arguments */
133461 131228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_tokenizer **pp /* OUT: New tokenizer handle */
133462 131229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
133463 131230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unicode_tokenizer *pNew; /* New tokenizer object */
133464 131231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
131232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = SQLITE_OK;
131233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
133465 131234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew = (unicode_tokenizer *) sqlite3_malloc(sizeof(unicode_tokenizer));
133466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pNew==NULL ){
133467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_NOMEM;
133468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
131235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pNew==NULL ) return SQLITE_NOMEM;
133469 131236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
memset(pNew, 0, sizeof(unicode_tokenizer));
133470 131237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->bRemoveDiacritic = 1;
133471 131238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<nArg; i++){
131239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; rc==SQLITE_OK && i<nArg; i++){
133473 131240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *z = azArg[i];
133474 131241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n = strlen(z);
133475 131242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133476 131243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( n==19 && memcmp("remove_diacritics=1", z, 19)==0 ){
133477 131244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->bRemoveDiacritic = 1;
133478 131245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133479 131246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else if( n==19 && memcmp("remove_diacritics=0", z, 19)==0 ){
133480 131247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pNew->bRemoveDiacritic = 0;
133481 131248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
131249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( n>=11 && memcmp("tokenchars=", z, 11)==0 ){
131250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = unicodeAddExceptions(pNew, 1, &z[11], n-11);
131251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( n>=11 && memcmp("separators=", z, 11)==0 ){
131253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = unicodeAddExceptions(pNew, 0, &z[11], n-11);
131254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
133482 131255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else{
133483 131256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Unrecognized argument */
133484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_ERROR;
131257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = SQLITE_ERROR;
133485 131258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133486 131259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133487 131260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *pp = &pNew->base;
133489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
133490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
133491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
133492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
133493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Destroy a tokenizer allocated by unicodeCreate().
133494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
133495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int unicodeDestroy(sqlite3_tokenizer *pTokenizer){
133496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_free(pTokenizer);
133497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return SQLITE_OK;
131261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rc!=SQLITE_OK ){
131262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unicodeDestroy((sqlite3_tokenizer *)pNew);
131263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pNew = 0;
131264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pp = (sqlite3_tokenizer *)pNew;
131266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
133498 131267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133499 131268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133500 131269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
133501 131270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Prepare to begin tokenizing a particular string. The input
133502 131271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** string to be tokenized is pInput[0..nBytes-1]. A cursor
@@ -133545,18 +131314,19 @@
133545 131314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
133546 131315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Extract the next token from a tokenization cursor. The cursor must
133547 131316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** have been opened by a prior call to simpleOpen().
133548 131317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
133549 131318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int unicodeNext(
133550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_tokenizer_cursor *p, /* Cursor returned by simpleOpen */
131319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_tokenizer_cursor *pC, /* Cursor returned by simpleOpen */
133551 131320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char **paToken, /* OUT: Token text */
133552 131321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *pnToken, /* OUT: Number of bytes at *paToken */
133553 131322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *piStart, /* OUT: Starting offset of token */
133554 131323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *piEnd, /* OUT: Ending offset of token */
133555 131324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int *piPos /* OUT: Position integer of token */
133556 131325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
133557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unicode_cursor *pCsr = (unicode_cursor *)p;
131326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unicode_cursor *pCsr = (unicode_cursor *)pC;
131327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unicode_tokenizer *p = ((unicode_tokenizer *)pCsr->base.pTokenizer);
133558 131328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCode;
133559 131329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zOut;
133560 131330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const unsigned char *z = &pCsr->aInput[pCsr->iOff];
133561 131331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const unsigned char *zStart = z;
133562 131332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const unsigned char *zEnd;
@@ -133565,11 +131335,11 @@
133565 131335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Scan past any delimiter characters before the start of the next token.
133566 131336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return SQLITE_DONE early if this takes us all the way to the end of
133567 131337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the input. */
133568 131338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( z<zTerm ){
133569 131339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
READ_UTF8(z, zTerm, iCode);
133570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3FtsUnicodeIsalnum(iCode) ) break;
131340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( unicodeIsAlnum(p, iCode) ) break;
133571 131341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zStart = z;
133572 131342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133573 131343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zStart>=zTerm ) return SQLITE_DONE;
133574 131344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133575 131345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zOut = pCsr->zToken;
@@ -133585,21 +131355,19 @@
133585 131355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCsr->nAlloc += 64;
133586 131356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133587 131357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133588 131358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Write the folded case of the last character read to the output */
133589 131359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zEnd = z;
133590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- iOut = sqlite3FtsUnicodeFold(iCode,
133591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ((unicode_tokenizer *)pCsr->base.pTokenizer)->bRemoveDiacritic
133592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
131360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ iOut = sqlite3FtsUnicodeFold(iCode, p->bRemoveDiacritic);
133593 131361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iOut ){
133594 131362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WRITE_UTF8(zOut, iOut);
133595 131363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133596 131364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133597 131365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the cursor is not at EOF, read the next character */
133598 131366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z>=zTerm ) break;
133599 131367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
READ_UTF8(z, zTerm, iCode);
133600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }while( sqlite3FtsUnicodeIsalnum(iCode)
131368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }while( unicodeIsAlnum(p, iCode)
133601 131369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
|| sqlite3FtsUnicodeIsdiacritic(iCode)
133602 131370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
133603 131371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133604 131372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Set the output variables and return. */
133605 131373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pCsr->iOff = (z - pCsr->aInput);
@@ -133779,11 +131547,11 @@
133779 131547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iHi = iTest-1;
133780 131548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133781 131549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133782 131550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( aEntry[0]<key );
133783 131551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( key>=aEntry[iRes] );
133784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (c >= ((aEntry[iRes]>>10) + (aEntry[iRes]&0x3FF)));
131552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (((unsigned int)c) >= ((aEntry[iRes]>>10) + (aEntry[iRes]&0x3FF)));
133785 131553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133786 131554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
133787 131555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
133788 131556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
133789 131557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -138059,11 +135827,11 @@
138059 135827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return SQLITE_DONE;
138060 135828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
138061 135829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
138062 135830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( iStart<iEnd ){
138063 135831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iWhite = iStart;
138064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- U8_NEXT(pCsr->aChar, iWhite, pCsr->nChar, c);
135832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ U16_NEXT(pCsr->aChar, iWhite, pCsr->nChar, c);
138065 135833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( u_isspace(c) ){
138066 135834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iStart = iWhite;
138067 135835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
138068 135836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
138069 135837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
138070 135838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!