SQLite

Check-in [0208e4221a]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Make sure sqlite3_thread_cleanup() does not try to allocate memory. (CVS 2979)
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 0208e4221a2d90b5ae0755061c345d3351a30da8
User & Date: drh 2006-01-19 17:42:51.000
Context
2006-01-20
10:55
Handle some of the IO error conditions that may occur in a shared-cache context. (CVS 2980) (check-in: 97491d4eb5 user: danielk1977 tags: trunk)
2006-01-19
17:42
Make sure sqlite3_thread_cleanup() does not try to allocate memory. (CVS 2979) (check-in: 0208e4221a user: drh tags: trunk)
11:28
Fix the #ifdef around sqlite3OutstandingMallocs() in test1.c. (CVS 2978) (check-in: 218c6184c8 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/main.c.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
**
*************************************************************************
** Main file for the SQLite library.  The routines in this file
** implement the programmer interface to the library.  Routines in
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: main.c,v 1.328 2006/01/18 16:51:35 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "os.h"
#include <ctype.h>

/*
** The following constant value is used by the SQLITE_BIGENDIAN and







|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
**
*************************************************************************
** Main file for the SQLite library.  The routines in this file
** implement the programmer interface to the library.  Routines in
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: main.c,v 1.329 2006/01/19 17:42:51 drh Exp $
*/
#include "sqliteInt.h"
#include "os.h"
#include <ctype.h>

/*
** The following constant value is used by the SQLITE_BIGENDIAN and
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118

1119
1120
1121
#endif

/*
** This is a convenience routine that makes sure that all thread-specific
** data for this thread has been deallocated.
*/
void sqlite3_thread_cleanup(void){
  ThreadData *pTd = sqlite3ThreadData();
  if( pTd ){
    memset(pTd, 0, sizeof(*pTd));

  }
  sqlite3ReleaseThreadData();
}







|


>

<

1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120

1121
#endif

/*
** This is a convenience routine that makes sure that all thread-specific
** data for this thread has been deallocated.
*/
void sqlite3_thread_cleanup(void){
  ThreadData *pTd = sqlite3OsThreadSpecificData(0);
  if( pTd ){
    memset(pTd, 0, sizeof(*pTd));
    sqlite3OsThreadSpecificData(-1);
  }

}