Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix TRACE7 in os_common.h. (CVS 1765) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
76e0b74961af3ff285757ac428b82fe7 |
User & Date: | drh 2004-06-29 13:54:50.000 |
Context
2004-06-29
| ||
14:03 | Fix capi3.test so that it works with production (as well as debugging ) builds. (CVS 1766) (check-in: 9cf371d85d user: danielk1977 tags: trunk) | |
13:54 | Fix TRACE7 in os_common.h. (CVS 1765) (check-in: 76e0b74961 user: drh tags: trunk) | |
13:41 | Ensure the tcl interface returns an error when sqlite3_create_function() fails. (CVS 1764) (check-in: 357a82cd22 user: danielk1977 tags: trunk) | |
Changes
Changes to src/os_common.h.
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #define SEEK(X) #define TRACE1(X) #define TRACE2(X,Y) #define TRACE3(X,Y,Z) #define TRACE4(X,Y,Z,A) #define TRACE5(X,Y,Z,A,B) #define TRACE6(X,Y,Z,A,B,C) #endif /* ** If we compile with the SQLITE_TEST macro set, then the following block ** of code will give us the ability to simulate a disk I/O error. This ** is used for testing the I/O recovery logic. | > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | #define SEEK(X) #define TRACE1(X) #define TRACE2(X,Y) #define TRACE3(X,Y,Z) #define TRACE4(X,Y,Z,A) #define TRACE5(X,Y,Z,A,B) #define TRACE6(X,Y,Z,A,B,C) #define TRACE7(X,Y,Z,A,B,C,D) #endif /* ** If we compile with the SQLITE_TEST macro set, then the following block ** of code will give us the ability to simulate a disk I/O error. This ** is used for testing the I/O recovery logic. |
︙ | ︙ |
Changes to src/vdbe.c.
︙ | ︙ | |||
39 40 41 42 43 44 45 | ** ** Various scripts scan this source file in order to generate HTML ** documentation, headers files, or other derived files. The formatting ** of the code in this file is, therefore, important. See other comments ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ** ** Various scripts scan this source file in order to generate HTML ** documentation, headers files, or other derived files. The formatting ** of the code in this file is, therefore, important. See other comments ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** ** $Id: vdbe.c,v 1.394 2004/06/29 13:54:50 drh Exp $ */ #include "sqliteInt.h" #include "os.h" #include <ctype.h> #include "vdbeInt.h" /* |
︙ | ︙ | |||
981 982 983 984 985 986 987 | } /* If it wasn't already, P3 has been converted to the database text ** encoding. Fall through to OP_Concat to process this instruction. */ } | | | < < | | < < < < < < < < < < < < < < < | | 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 | } /* If it wasn't already, P3 has been converted to the database text ** encoding. Fall through to OP_Concat to process this instruction. */ } /* Opcode: Concat P1 P2 * ** ** Look at the first P1 elements of the stack. Append them all ** together with the lowest element first. The original P1 elements ** are popped from the stack if P2==0 and retained if P2==1. If ** any element of the stack is NULL, then the result is NULL. ** ** When P1==1, this routine makes a copy of the top stack element ** into memory obtained from sqliteMalloc(). */ case OP_Concat: { char *zNew; int nByte; int nField; int i, j; Mem *pTerm; /* Loop through the stack elements to see how long the result will be. */ nField = pOp->p1; pTerm = &pTos[1-nField]; nByte = 0; for(i=0; i<nField; i++, pTerm++){ assert( pOp->p2==0 || (pTerm->flags&MEM_Str) ); if( pTerm->flags&MEM_Null ){ nByte = -1; break; } Stringify(pTerm, db->enc); |
︙ | ︙ | |||
1052 1053 1054 1055 1056 1057 1058 | j = 0; pTerm = &pTos[1-nField]; for(i=j=0; i<nField; i++, pTerm++){ int n = pTerm->n; assert( pTerm->flags & MEM_Str ); memcpy(&zNew[j], pTerm->z, n); j += n; | < < < < | 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 | j = 0; pTerm = &pTos[1-nField]; for(i=j=0; i<nField; i++, pTerm++){ int n = pTerm->n; assert( pTerm->flags & MEM_Str ); memcpy(&zNew[j], pTerm->z, n); j += n; } zNew[j] = 0; zNew[j+1] = 0; assert( j==nByte ); if( pOp->p2==0 ){ popStack(&pTos, nField); |
︙ | ︙ |