Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Avoid excess heap usage when copying expressions. Ticket #979. (CVS 2126) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | version_2 |
Files: | files | file ages | folders |
SHA1: |
0f444c032dded0ea4c5bf47516f37cbd |
User & Date: | drh 2004-11-20 20:42:10.000 |
Context
2005-02-14
| ||
00:21 | Fix the vacuum bug in version 2.8. Also prepare for release 2.8.16. (CVS 2326) (check-in: 0eaebad5a0 user: drh tags: version_2) | |
2004-11-20
| ||
20:42 | Avoid excess heap usage when copying expressions. Ticket #979. (CVS 2126) (check-in: 0f444c032d user: drh tags: version_2) | |
19:01 | Preserve the default_temp_store pragma across VACUUM in version 2.8. (Version 3.0 already does this.) Ticket #1008. (CVS 2120) (check-in: 7fa623f24a user: drh tags: version_2) | |
Changes
Changes to src/expr.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** ** $Id: expr.c,v 1.114.2.4 2004/11/20 20:42:10 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** Construct a new expression node and return a pointer to it. Memory ** for this node is obtained from sqliteMalloc(). The calling function |
︙ | ︙ | |||
120 121 122 123 124 125 126 | Expr *sqliteExprDup(Expr *p){ Expr *pNew; if( p==0 ) return 0; pNew = sqliteMallocRaw( sizeof(*p) ); if( pNew==0 ) return 0; memcpy(pNew, p, sizeof(*pNew)); if( p->token.z!=0 ){ | | | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | Expr *sqliteExprDup(Expr *p){ Expr *pNew; if( p==0 ) return 0; pNew = sqliteMallocRaw( sizeof(*p) ); if( pNew==0 ) return 0; memcpy(pNew, p, sizeof(*pNew)); if( p->token.z!=0 ){ pNew->token.z = sqliteStrNDup(p->token.z, p->token.n); pNew->token.dyn = 1; }else{ assert( pNew->token.z==0 ); } pNew->span.z = 0; pNew->pLeft = sqliteExprDup(p->pLeft); pNew->pRight = sqliteExprDup(p->pRight); |
︙ | ︙ |