aboutsummaryrefslogtreecommitdiff
path: root/src/malloc.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2010-07-24 11:28:28 +0000
committerdan <dan@noemail.net>2010-07-24 11:28:28 +0000
commitd46def77db74a7dfadabb16da57c25d83af0c248 (patch)
tree8483a41f5c4a98751242c17018d127276a5eae6c /src/malloc.c
parent5419ee5f2f068601ebc494b104f92cadfc7de5e7 (diff)
downloadsqlite-d46def77db74a7dfadabb16da57c25d83af0c248.tar.gz
sqlite-d46def77db74a7dfadabb16da57c25d83af0c248.zip
Experimental code to measure memory consumed by database schemas and prepared statements.
FossilOrigin-Name: 9aa30342f4de4eff630520ea8e07ad253d3f0877
Diffstat (limited to 'src/malloc.c')
-rw-r--r--src/malloc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/malloc.c b/src/malloc.c
index e34c27975..05ea51006 100644
--- a/src/malloc.c
+++ b/src/malloc.c
@@ -455,7 +455,13 @@ void sqlite3_free(void *p){
*/
void sqlite3DbFree(sqlite3 *db, void *p){
assert( db==0 || sqlite3_mutex_held(db->mutex) );
- if( isLookaside(db, p) ){
+ if( db && db->pnBytesFreed ){
+ if( isLookaside(db, p) ){
+ *db->pnBytesFreed += db->lookaside.sz;
+ }else{
+ *db->pnBytesFreed += sqlite3MallocSize(p);
+ }
+ }else if( isLookaside(db, p) ){
LookasideSlot *pBuf = (LookasideSlot*)p;
pBuf->pNext = db->lookaside.pFree;
db->lookaside.pFree = pBuf;