1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-10-30 07:05:46 +03:00
Commit Graph

42 Commits

Author SHA1 Message Date
drh
d0d0f8dc67 Small simplification and performance improvement in memsys5Free().
FossilOrigin-Name: 0a9cff5c4822874b74e90bfca3963bc7e5c753a5
2016-01-25 01:07:59 +00:00
drh
c9d6d1b67b Omit performance tracking from the memsys5 memory allocator if neither
SQLITE_DEBUG nor SQLITE_TEST are defined.

FossilOrigin-Name: af5c7714e993f060841f1e893f754ddf3870e6d0
2016-01-07 21:12:40 +00:00
drh
d319b8c143 Micro-optimizations and comment fixes on the mem5.c memory allocator module.
FossilOrigin-Name: 8bf5e056eb8beb6e0ed5874fb24d7fe9f0b66d2b
2015-12-18 16:29:47 +00:00
drh
62aaa6ca88 Fix over-length source code lines. No logic changes.
FossilOrigin-Name: 198d191b2f5ef7d63ac0093c701955c9052fd734
2015-11-21 17:27:42 +00:00
drh
039ca6ab59 Performance optimizations to the sqlite3MallocSize() by requiring the
argument to always be non-NULL.

FossilOrigin-Name: cb65989b0710c65e4df69063b346344fdb1d12c7
2015-10-15 16:20:57 +00:00
peter.d.reid
60ec914c74 Fix typos in comments. No code changes.
FossilOrigin-Name: e62aab5e9290503869e1f4d5e0fefd2b4dee0a69
2014-09-06 16:39:46 +00:00
drh
b663587890 Avoid a (harmless) buffer overread that is possible on an OOM when
MEMSYS5 is engaged.

FossilOrigin-Name: b3296267fb67b9f59719a37093253062edde3746
2014-03-31 13:42:42 +00:00
drh
9d41bc105d In memsys5, initialize new allocations to non-zero bytes. Change the content
of freed allocations to prevent use after free.  These changes in SQLITE_DEBUG
only.

FossilOrigin-Name: ba5f0a5599dece6d8f3dfe652800c28875c74a24
2014-02-24 19:07:51 +00:00
mistachkin
3f9cd2ae75 Fix harmless compiler warnings.
FossilOrigin-Name: a12d214ecccc5d3372dbcedc88705b0092363971
2013-12-03 22:33:35 +00:00
drh
0c2df17691 The MEMSYS5 algorithm does not have to return the block with the lowest
address.  Any block of the appropriate size will do.  Use the first block
found on the freelist for the appropriate size for a performance improvement.

FossilOrigin-Name: 12e612e8e7c4a6f83acf0daf5608151fb5ec1575
2013-11-24 00:46:00 +00:00
drh
9948e95674 A much simpler fix is to simply change MEMSYS5 so that it takes any free
block of the appropriate size (the first on the list of free blocks) rather
than searching for the one with the smallest address.  This is also faster
than using the min-heap algorithm.  Need to research to verify that the
allocator still satisfies the Robson proof, however.

FossilOrigin-Name: 8191b512122c13d7fa61d8e5487652f13ec172f7
2013-11-23 22:45:12 +00:00
mistachkin
3dfaf6766c Fix a few more minor comment typos. No changes to code.
FossilOrigin-Name: 9e999081a59b161a0a1f968fbc01a1db9ea43b93
2013-08-14 00:20:23 +00:00
drh
fcd71b6010 Suppress many harmless compiler warnings, mostly signed/unsigned comparisons
within asserts or unused parameters in extensions.

FossilOrigin-Name: 3eeb0ff78d04891b5fd1a3d99a9fb8cfbed77a81
2011-04-05 22:08:24 +00:00
shaneh
9324794e1e Minor clean-up of previous mem5 allocator fix.
FossilOrigin-Name: 3643842316239ff7859f0ec522736a2b9c03d22c
2011-03-10 03:54:55 +00:00
shaneh
a6ec892b5b Fix issue with mem5 allocator when min request size is larger thatn 2^30.
FossilOrigin-Name: d7dae06fb2d57ed6b9555b774712f42077ae4155
2011-03-09 21:36:17 +00:00
drh
9f129f467e Add evidence mark comments to source code. Add additional information to the
documentation of sqlite3_release_memory().  Fix a minor inefficiency in mem1.c
that was discovered while writing requirements tests.

FossilOrigin-Name: 53b0c03fd33d2d8141fd386de5493fec64456042
2010-08-31 15:27:32 +00:00
drh
af46dc12f7 Add testcase() macros beside each sqlite3_log() call to make sure it is
tested with both logging enable and disabled.

FossilOrigin-Name: 1168763d2cd96acfa0488198e8bc82f0c4fa35a3
2010-02-24 21:44:07 +00:00
drh
413c3d36a2 Continuing improvements to error reporting and the sqlite3_log() routine.
FossilOrigin-Name: edea3bb740ddd096a46e00678b59d465bb1e2903
2010-02-23 20:11:56 +00:00
drh
daf4a9f3b8 Simplifications to the range-scan logic in support of structural testing.
FossilOrigin-Name: bbbee81075d923be7ca11e6e635c069a05d1605a
2009-08-20 20:05:55 +00:00
drh
1b25753b30 Move the allocation of the memsys5 mutex into the initializer.
FossilOrigin-Name: 4e377a09c194e90581ef00fd3a213e936b4e648a
2009-08-18 15:33:44 +00:00
drh
7c6791c8b1 Fix obscure issues with the memsys5 memory allocator. Arrange that the
xRealloc() interface to memory allocators is only called with a value
that has been through xRoundup().

FossilOrigin-Name: 577bd6f15556b7f6d86ee5167353fdd535577bf6
2009-08-18 14:48:53 +00:00
drh
15385ad437 When shutting down the memsys5 memory allocator, be sure to clear the mutex
pointer in case the next startup does not use a mutex because it is configured
differently.

FossilOrigin-Name: d4e7e2d82321c12fe471ed49098828bc0ef78543
2009-08-18 12:16:03 +00:00
drh
4c5514d76e Fix a bug in mem5.c which would cause an infinite loop on an attempt
to allocate more than 1073741824 bytes of contiguous memory.  Also, some
cleanup of mem5.c.  More work to do on this.

FossilOrigin-Name: 783b751a38f9f911c5ebdf738c255b7111978f76
2009-08-18 01:54:19 +00:00
danielk1977
f3d3c27a0c Fix some compiler warnings that show up when building the amalgamation only. (CVS 5927)
FossilOrigin-Name: d1abe8a1c9a990b02c71d6c249436381c9fde443
2008-11-19 16:52:44 +00:00
danielk1977
a03396aafb Fix a few more compiler warnings. (CVS 5926)
FossilOrigin-Name: 70b2f6839ca97dfc08f72875283f5c75c8fcf0cc
2008-11-19 14:35:46 +00:00
danielk1977
00e136135e Modifications to avoid unsigned/signed comparisons in various files. (CVS 5914)
FossilOrigin-Name: 8009220c36635dd9b6efea7dc13281ca9625c40a
2008-11-17 19:18:54 +00:00
danielk1977
ac8d7b35fa Minor changes to get memsys5 compiling and its tests passing. Ticket #3495. (CVS 5901)
FossilOrigin-Name: 96453ca16e90bc0c0cbfb75b3e39899f56d6ea66
2008-11-13 16:21:50 +00:00
drh
d1370b6d92 Remove the vestigial mem4 and mem6 memory allocators. Add the
SQLITE_ZERO_MALLOC compile-time option and the mem0.c module to
handle memory allocation for that case. (CVS 5848)

FossilOrigin-Name: 4651f590f0b8bf13938b2b15d5082136e763af8d
2008-10-28 18:58:20 +00:00
danielk1977
23bf0f41ea Explicitly initialize at least the first field of every struct. This is to work around compilers that don't like the syntax "struct XXX { ... } yyy = {};". (CVS 5666)
FossilOrigin-Name: 88bfdc87471e65ac5a262a794b8cdf3e563eb327
2008-09-02 17:52:51 +00:00
danielk1977
5c8f858790 Change some more global variables to work with OMIT_WSD. (CVS 5660)
FossilOrigin-Name: 46acaf58e11ebe69e4fb5f171d3ee29f056d8e68
2008-09-02 10:22:00 +00:00
danielk1977
075c23af26 Begin adding support for the SQLITE_OMIT_WSD macro. Some (many) WSD variables still need wrappers added to them. (CVS 5652)
FossilOrigin-Name: 573d92abb9adb1c321ebc2fcadcf14374213b093
2008-09-01 18:34:20 +00:00
drh
7830cd41ba Activate testing of mem3 and mem5. Fix problems found. Tickets #3223
and #3225.  Other test configuration changes. (CVS 5419)

FossilOrigin-Name: a3a7820540f6f2285e6c83cac84383fc7d60d267
2008-07-16 12:25:32 +00:00
danielk1977
0d84e5b2a7 Fix mem3.c (broken by (5320)). (CVS 5321)
FossilOrigin-Name: fef90a21aea11f15371d3fcf44548d786dd8819b
2008-06-27 14:05:24 +00:00
danielk1977
5099be5e85 Change mem5.c so that the minimum allocation size is runtime configurable. (CVS 5320)
FossilOrigin-Name: 4f95f4cdf77e134fab42148e10198c7b008d4ae6
2008-06-27 13:27:03 +00:00
danielk1977
6b39c2e40b Have mem3.c and mem5.c grab a mutex when required. Include them both in the amalgamation again. (CVS 5306)
FossilOrigin-Name: 9e3c95ff4048cd8e4c56acf7a8ebedc49621e9c7
2008-06-25 14:57:53 +00:00
danielk1977
c66c0e14a6 Fix the allocator in mem5.c so that it can be enabled at run time using the sqlite3_config() function. (CVS 5304)
FossilOrigin-Name: 30ff6bb0b2d1068d28e86ac90bb9f454e4537a2d
2008-06-25 14:26:07 +00:00
danielk1977
59f8c08ecc Implement the 'CONFIG_SINGLETHREAD' and 'CONFIG_MULTITHREAD' configuration modes. (CVS 5234)
FossilOrigin-Name: 5059644c4bc5f6679afd939e0bc26080f42a9918
2008-06-18 17:09:10 +00:00
drh
40257ffd0a Progress toward implementation of sqlite3_config() and a rework of the
mutex and memory allocation subsystems.  This is an incremental check-in. (CVS 5218)

FossilOrigin-Name: a03c5af115889f477e17187a198a7d2d40bc76bf
2008-06-13 18:24:27 +00:00
drh
49e4fd71a4 Change non-exported memory interfaces to following the naming conventions. (CVS 4797)
FossilOrigin-Name: 94774b41429c8bfa3582e30c09f414b9e5669575
2008-02-19 15:15:15 +00:00
drh
eee4c8ca11 Add the memory fault simulator to mem5.c. Enable soft heap limit on mem5.c.
Limit the size of hash tables and the vdbefifo when using mem5.c. (CVS 4795)

FossilOrigin-Name: 63da5d97542e4f54c33329833477c8d96ce05dd0
2008-02-18 22:24:57 +00:00
drh
2d7636e212 The power-of-two first-fit memory allocator is now working. (CVS 4793)
FossilOrigin-Name: d134d29cea971eb01a0e0fd94341ab79e2d5b57a
2008-02-16 16:21:45 +00:00
drh
0d18020b80 Add the experimental mem5.c memory allocator. Allocate the content part
of cache pages separately from the header.  (See check-ins (4495) and (4409)). (CVS 4789)

FossilOrigin-Name: 669ece8c82bfa69add852589dd1211751cb26fb2
2008-02-14 23:26:56 +00:00