Search
j0ke.net Open Build Service
>
Projects
>
home:jg
:
devel
>
sqlite2
> sqlite-64bit-fixes.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File sqlite-64bit-fixes.patch of Package sqlite2
--- sqlite/src/test3.c.64bit-fixes 2004-09-29 10:09:56.249551000 -0400 +++ sqlite/src/test3.c 2004-09-29 11:34:51.314336091 -0400 @@ -19,9 +19,11 @@ #include "pager.h" #include "btree.h" #include "tcl.h" +#include "test-util.h" #include <stdlib.h> #include <string.h> + /* ** Interpret an SQLite error number */ @@ -98,7 +100,7 @@ static int btree_close( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); rc = sqliteBtreeClose(pBt); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -125,7 +127,7 @@ static int btree_begin_transaction( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); rc = sqliteBtreeBeginTrans(pBt); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -152,7 +154,7 @@ static int btree_rollback( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); rc = sqliteBtreeRollback(pBt); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -179,7 +181,7 @@ static int btree_commit( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); rc = sqliteBtreeCommit(pBt); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -207,7 +209,7 @@ static int btree_create_table( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); rc = sqliteBtreeCreateTable(pBt, &iTable); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -237,7 +239,7 @@ static int btree_drop_table( " ID TABLENUM\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); if( Tcl_GetInt(interp, argv[2], &iTable) ) return TCL_ERROR; rc = sqliteBtreeDropTable(pBt, iTable); if( rc!=SQLITE_OK ){ @@ -266,7 +268,7 @@ static int btree_clear_table( " ID TABLENUM\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); if( Tcl_GetInt(interp, argv[2], &iTable) ) return TCL_ERROR; rc = sqliteBtreeClearTable(pBt, iTable); if( rc!=SQLITE_OK ){ @@ -296,7 +298,7 @@ static int btree_get_meta( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); rc = sqliteBtreeGetMeta(pBt, aMeta); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -333,7 +335,7 @@ static int btree_update_meta( " ID METADATA...\" (METADATA is ", zBuf, " integers)", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); for(i=0; i<SQLITE_N_BTREE_META; i++){ if( Tcl_GetInt(interp, argv[i+2], &aMeta[i]) ) return TCL_ERROR; } @@ -365,7 +367,7 @@ static int btree_page_dump( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); if( Tcl_GetInt(interp, argv[2], &iPage) ) return TCL_ERROR; rc = sqliteBtreePageDump(pBt, iPage, 0); if( rc!=SQLITE_OK ){ @@ -395,7 +397,7 @@ static int btree_tree_dump( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); if( Tcl_GetInt(interp, argv[2], &iPage) ) return TCL_ERROR; rc = sqliteBtreePageDump(pBt, iPage, 1); if( rc!=SQLITE_OK ){ @@ -425,7 +427,7 @@ static int btree_pager_stats( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); a = sqlitepager_stats(sqliteBtreePager(pBt)); for(i=0; i<9; i++){ static char *zName[] = { @@ -458,7 +460,7 @@ static int btree_pager_ref_dump( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); sqlitepager_refdump(sqliteBtreePager(pBt)); return TCL_OK; } @@ -487,7 +489,7 @@ static int btree_integrity_check( " ID ROOT ...\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); nRoot = argc-2; aRoot = malloc( sizeof(int)*(argc-2) ); for(i=0; i<argc-2; i++){ @@ -524,7 +526,7 @@ static int btree_cursor( " ID TABLENUM WRITEABLE\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR; + pBt = sqliteTextToPtr(argv[1]); if( Tcl_GetInt(interp, argv[2], &iTable) ) return TCL_ERROR; if( Tcl_GetBoolean(interp, argv[3], &wrFlag) ) return TCL_ERROR; rc = sqliteBtreeCursor(pBt, iTable, wrFlag, &pCur); @@ -556,7 +558,7 @@ static int btree_close_cursor( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeCloseCursor(pCur); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -586,7 +588,7 @@ static int btree_move_to( " ID KEY\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeMoveto(pCur, argv[2], strlen(argv[2]), &res); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -618,7 +620,7 @@ static int btree_delete( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeDelete(pCur); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -647,7 +649,7 @@ static int btree_insert( " ID KEY DATA\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeInsert(pCur, argv[2], strlen(argv[2]), argv[3], strlen(argv[3])); if( rc ){ @@ -680,7 +682,7 @@ static int btree_next( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeNext(pCur, &res); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -714,7 +716,7 @@ static int btree_prev( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreePrevious(pCur, &res); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -747,7 +749,7 @@ static int btree_first( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeFirst(pCur, &res); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -780,7 +782,7 @@ static int btree_last( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeLast(pCur, &res); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -812,7 +814,7 @@ static int btree_key( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); sqliteBtreeKeySize(pCur, &n); zBuf = malloc( n+1 ); rc = sqliteBtreeKey(pCur, 0, n, zBuf); @@ -850,7 +852,7 @@ static int btree_data( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); sqliteBtreeDataSize(pCur, &n); zBuf = malloc( n+1 ); rc = sqliteBtreeData(pCur, 0, n, zBuf); @@ -887,7 +889,7 @@ static int btree_payload_size( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); sqliteBtreeKeySize(pCur, &n1); sqliteBtreeDataSize(pCur, &n2); sprintf(zBuf, "%d", n1+n2); @@ -927,7 +929,7 @@ static int btree_cursor_dump( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pCur) ) return TCL_ERROR; + pCur = sqliteTextToPtr(argv[1]); rc = sqliteBtreeCursorDump(pCur, aResult); if( rc ){ Tcl_AppendResult(interp, errorName(rc), 0); --- sqlite/src/test2.c.64bit-fixes 2004-02-09 20:54:28.000000000 -0500 +++ sqlite/src/test2.c 2004-09-29 11:35:00.840257674 -0400 @@ -19,6 +19,7 @@ #include "sqliteInt.h" #include "pager.h" #include "tcl.h" +#include "test-util.h" #include <stdlib.h> #include <string.h> @@ -104,7 +105,7 @@ static int pager_close( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); rc = sqlitepager_close(pPager); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -131,7 +132,7 @@ static int pager_rollback( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); rc = sqlitepager_rollback(pPager); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -158,7 +159,7 @@ static int pager_commit( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); rc = sqlitepager_commit(pPager); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -185,7 +186,7 @@ static int pager_ckpt_begin( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); rc = sqlitepager_ckpt_begin(pPager); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -212,7 +213,7 @@ static int pager_ckpt_rollback( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); rc = sqlitepager_ckpt_rollback(pPager); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -239,7 +240,7 @@ static int pager_ckpt_commit( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); rc = sqlitepager_ckpt_commit(pPager); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -266,7 +267,7 @@ static int pager_stats( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); a = sqlitepager_stats(pPager); for(i=0; i<9; i++){ static char *zName[] = { @@ -299,7 +300,7 @@ static int pager_pagecount( " ID\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); sprintf(zBuf,"%d",sqlitepager_pagecount(pPager)); Tcl_AppendResult(interp, zBuf, 0); return TCL_OK; @@ -326,7 +327,7 @@ static int page_get( " ID PGNO\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); if( Tcl_GetInt(interp, argv[2], &pgno) ) return TCL_ERROR; rc = sqlitepager_get(pPager, pgno, &pPage); if( rc!=SQLITE_OK ){ @@ -359,7 +360,7 @@ static int page_lookup( " ID PGNO\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPager) ) return TCL_ERROR; + pPager = sqliteTextToPtr(argv[1]); if( Tcl_GetInt(interp, argv[2], &pgno) ) return TCL_ERROR; pPage = sqlitepager_lookup(pPager, pgno); if( pPage ){ @@ -387,7 +388,7 @@ static int page_unref( " PAGE\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPage) ) return TCL_ERROR; + pPage = sqliteTextToPtr(argv[1]); rc = sqlitepager_unref(pPage); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); @@ -414,7 +415,7 @@ static int page_read( " PAGE\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPage) ) return TCL_ERROR; + pPage = sqliteTextToPtr(argv[1]); memcpy(zBuf, pPage, sizeof(zBuf)); Tcl_AppendResult(interp, zBuf, 0); return TCL_OK; @@ -438,7 +439,7 @@ static int page_number( " PAGE\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPage) ) return TCL_ERROR; + pPage = sqliteTextToPtr(argv[1]); sprintf(zBuf, "%d", sqlitepager_pagenumber(pPage)); Tcl_AppendResult(interp, zBuf, 0); return TCL_OK; @@ -462,7 +463,7 @@ static int page_write( " PAGE DATA\"", 0); return TCL_ERROR; } - if( Tcl_GetInt(interp, argv[1], (int*)&pPage) ) return TCL_ERROR; + pPage = sqliteTextToPtr(argv[1]); rc = sqlitepager_write(pPage); if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, errorName(rc), 0); --- sqlite/src/test-util.c.64bit-fixes 2004-09-29 11:33:18.838681763 -0400 +++ sqlite/src/test-util.c 2004-09-29 11:35:32.332610359 -0400 @@ -0,0 +1,47 @@ +#include <stdint.h> +#include <assert.h> +#include "test-util.h" + +/* +** Translate a single byte of Hex into an integer. +*/ +static int hexToInt(int h){ + if( h>='0' && h<='9' ){ + return h - '0'; + }else if( h>='a' && h<='f' ){ + return h - 'a' + 10; + }else if( h>='A' && h<='F' ){ + return h - 'A' + 10; + }else{ + return 0; + } +} + +#if defined(SQLITE_TEST) +/* +** Convert text generated by the "%p" conversion format back into +** a pointer. +*/ +void *sqliteTextToPtr(const char *z){ + void *p; + uint64_t v; + uint32_t v2; + if( z[0]=='0' && z[1]=='x' ){ + z += 2; + } + v = 0; + while( *z ){ + v = (v<<4) + hexToInt(*z); + z++; + } + if( sizeof(p)==sizeof(v) ){ + p = *(void**)&v; + }else{ + assert( sizeof(p)==sizeof(v2) ); + v2 = (uint32_t)v; + p = *(void**)&v2; + } + return p; +} +#endif + --- sqlite/src/test-util.h.64bit-fixes 2004-09-29 11:33:23.513624799 -0400 +++ sqlite/src/test-util.h 2004-09-29 11:34:35.012047569 -0400 @@ -0,0 +1,6 @@ +#ifndef TEST_UTIL_H +#define TEST_UTIL_H + +extern void *sqliteTextToPtr(const char *z); + +#endif /* TEST_UTIL_H */ --- sqlite/Makefile.in.64bit-fixes 2004-09-29 09:41:08.011929000 -0400 +++ sqlite/Makefile.in 2004-09-29 11:32:59.441768988 -0400 @@ -142,6 +142,7 @@ SRC = \ # Source code to the test files. # TESTSRC = \ + $(TOP)/src/test-util.c \ $(TOP)/src/btree.c \ $(TOP)/src/func.c \ $(TOP)/src/os.c \