Re: [sqlite] Request: SQLITE_USE_MALLOCA

2009-11-10 Thread D. Richard Hipp

On Nov 10, 2009, at 3:19 PM, Shaun Seckman (Firaxis) wrote:
>
>SQLite currently has a SQLITE_USE_ALLOCA define in  
> which
> it will attempt to use alloca instead of malloc when the usage fits.
> One of the common dangers with alloca is that if there is not enough
> stack space, bad things happen and it's usually very difficult to  
> debug.

Have you actually measured how much stack space SQLite is using (even  
with
SQLITE_USE_ALLOCA)?  Is excess stack space usage really a problem?

D. Richard Hipp
d...@hwaci.com



___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] Request: SQLITE_USE_MALLOCA

2009-11-10 Thread Shaun Seckman (Firaxis)
Hello all,

SQLite currently has a SQLITE_USE_ALLOCA define in which
it will attempt to use alloca instead of malloc when the usage fits.
One of the common dangers with alloca is that if there is not enough
stack space, bad things happen and it's usually very difficult to debug.
Microsoft Visual Studio offers the function _malloca which will allocate
stack space if the amount is within a threshold OR it will malloc if the
amount is beyond the threshold.  I find myself frequently adding  the
following code to each new release of SQLite to support _malloca and was
curious if others would find it useful:

 

Just before "#ifdef SQLITE_USE_ALLOCA"..

#ifdef SQLITE_USE_MALLOCA

# define sqlite3StackAllocRaw(D,N)   _malloca(N)

# define sqlite3StackAllocZero(D,N)  memset(_malloca(N), 0, N)

# define sqlite3StackFree(D,P)   _freea(P);

#else

 

The two caveats I see that would probably prevent this from being
standard would be that _malloca may not exist on all platforms and that
_malloca can potentially bypass the memory management routines put in
place for SQLite (since _malloca will internally call malloc if there is
not enough stackspace).  Still, it serves as a nice safety net to those
who like using alloca but fear the dangers of it :)

 

-Shaun

 

 

___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users