Rename fields of the internal AuxData object to make them unique and easier
to search for. FossilOrigin-Name: 2be9850cef6492e168243807c34af72119ffbe414027a12c4eda6c421b5b950d
This commit is contained in:
parent
0d236a8bb0
commit
e694139788
16
manifest
16
manifest
@ -1,5 +1,5 @@
|
||||
C Improved\sdocumentation\sfor\sthe\sSQLITE_READ\sauthorizer\scallback.\sNo\scode\schanges.
|
||||
D 2017-05-10T16:33:48.398
|
||||
C Rename\sfields\sof\sthe\sinternal\sAuxData\sobject\sto\smake\sthem\sunique\sand\seasier\nto\ssearch\sfor.
|
||||
D 2017-05-10T19:42:52.377
|
||||
F Makefile.in 1cc758ce3374a32425e4d130c2fe7b026b20de5b8843243de75f087c0a2661fb
|
||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||
F Makefile.msc 6a8c838220f7c00820e1fc0ac1bccaaa8e5676067e1dbfa1bafa7a4ffecf8ae6
|
||||
@ -471,9 +471,9 @@ F src/util.c fc081ec6f63448dcd80d3dfad35baecfa104823254a815b081a4d9fe76e1db23
|
||||
F src/vacuum.c 1fe4555cd8c9b263afb85b5b4ee3a4a4181ad569
|
||||
F src/vdbe.c 9bac2bc2313ed682e6f48ccff6644d3263341885bfcbb3cdea7b720c722be2d5
|
||||
F src/vdbe.h f7d1456e28875c2dcb964056589b5b7149ab7edf39edeca801596a39bb3d3848
|
||||
F src/vdbeInt.h c070bc5c8b913bda0ceaa995cd4d939ded5e4fc96cf7c3c1c602d41b871f8ade
|
||||
F src/vdbeapi.c 5b08d82592bcff4470601fe78aaabebd50837860
|
||||
F src/vdbeaux.c b4999c744e59deba7ab8733640219ecbc771721b362d7e26ce4c57db575ad80b
|
||||
F src/vdbeInt.h 1ecdacc1322fdd3241ec30c32a480e328a6f864e532dc53fae8e0ab68121aebf
|
||||
F src/vdbeapi.c 736dce6a84d67ff7d8ebc5667048c5938fb2e5b2c6eff4a770e177a3f2797cb0
|
||||
F src/vdbeaux.c 436a903111fcc184bae36f9016100da0d294da294d526bf4702328da1ddcde4b
|
||||
F src/vdbeblob.c 359891617358deefc85bef7bcf787fa6b77facb9
|
||||
F src/vdbemem.c 2c70f8f5de6c71fb99a22c5b83be9fab5c47cdd8e279fa44a8c00cfed06d7e89
|
||||
F src/vdbesort.c e72fe02a2121386ba767ede8942e9450878b8fc873abf3d1b6824485f092570c
|
||||
@ -1579,7 +1579,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P 92ab1f7257d2866c69eaaf4cf85990677b911ef425e9c5a36a96978cccfb551c
|
||||
R 27c465138f2b6ced9e3bfb0a0cffcf42
|
||||
P 92c5ea7047323d10f762877c5f56d20a3e609e8b55efcfe4880ef3048821ac1f
|
||||
R a1dfb8ab33a614a9584dd808f82aa7c9
|
||||
U drh
|
||||
Z 9935b613ce03d191d190a39d6894fd05
|
||||
Z b1e990c3c0d70850169897a6b280d967
|
||||
|
@ -1 +1 @@
|
||||
92c5ea7047323d10f762877c5f56d20a3e609e8b55efcfe4880ef3048821ac1f
|
||||
2be9850cef6492e168243807c34af72119ffbe414027a12c4eda6c421b5b950d
|
@ -287,11 +287,11 @@ struct sqlite3_value {
|
||||
** when the VM is halted (if not before).
|
||||
*/
|
||||
struct AuxData {
|
||||
int iOp; /* Instruction number of OP_Function opcode */
|
||||
int iArg; /* Index of function argument. */
|
||||
int iAuxOp; /* Instruction number of OP_Function opcode */
|
||||
int iAuxArg; /* Index of function argument. */
|
||||
void *pAux; /* Aux data pointer */
|
||||
void (*xDelete)(void *); /* Destructor for the aux data */
|
||||
AuxData *pNext; /* Next element in list */
|
||||
void (*xDeleteAux)(void*); /* Destructor for the aux data */
|
||||
AuxData *pNextAux; /* Next element in list */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -814,11 +814,12 @@ void *sqlite3_get_auxdata(sqlite3_context *pCtx, int iArg){
|
||||
#else
|
||||
assert( pCtx->pVdbe!=0 );
|
||||
#endif
|
||||
for(pAuxData=pCtx->pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNext){
|
||||
if( pAuxData->iOp==pCtx->iOp && pAuxData->iArg==iArg ) break;
|
||||
for(pAuxData=pCtx->pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNextAux){
|
||||
if( pAuxData->iAuxOp==pCtx->iOp && pAuxData->iAuxArg==iArg ){
|
||||
return pAuxData->pAux;
|
||||
}
|
||||
|
||||
return (pAuxData ? pAuxData->pAux : 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -843,26 +844,26 @@ void sqlite3_set_auxdata(
|
||||
assert( pVdbe!=0 );
|
||||
#endif
|
||||
|
||||
for(pAuxData=pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNext){
|
||||
if( pAuxData->iOp==pCtx->iOp && pAuxData->iArg==iArg ) break;
|
||||
for(pAuxData=pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNextAux){
|
||||
if( pAuxData->iAuxOp==pCtx->iOp && pAuxData->iAuxArg==iArg ) break;
|
||||
}
|
||||
if( pAuxData==0 ){
|
||||
pAuxData = sqlite3DbMallocZero(pVdbe->db, sizeof(AuxData));
|
||||
if( !pAuxData ) goto failed;
|
||||
pAuxData->iOp = pCtx->iOp;
|
||||
pAuxData->iArg = iArg;
|
||||
pAuxData->pNext = pVdbe->pAuxData;
|
||||
pAuxData->iAuxOp = pCtx->iOp;
|
||||
pAuxData->iAuxArg = iArg;
|
||||
pAuxData->pNextAux = pVdbe->pAuxData;
|
||||
pVdbe->pAuxData = pAuxData;
|
||||
if( pCtx->fErrorOrAux==0 ){
|
||||
pCtx->isError = 0;
|
||||
pCtx->fErrorOrAux = 1;
|
||||
}
|
||||
}else if( pAuxData->xDelete ){
|
||||
pAuxData->xDelete(pAuxData->pAux);
|
||||
}else if( pAuxData->xDeleteAux ){
|
||||
pAuxData->xDeleteAux(pAuxData->pAux);
|
||||
}
|
||||
|
||||
pAuxData->pAux = pAux;
|
||||
pAuxData->xDelete = xDelete;
|
||||
pAuxData->xDeleteAux = xDelete;
|
||||
return;
|
||||
|
||||
failed:
|
||||
|
@ -2968,16 +2968,17 @@ void sqlite3VdbeDeleteAuxData(sqlite3 *db, AuxData **pp, int iOp, int mask){
|
||||
while( *pp ){
|
||||
AuxData *pAux = *pp;
|
||||
if( (iOp<0)
|
||||
|| (pAux->iOp==iOp && (pAux->iArg>31 || !(mask & MASKBIT32(pAux->iArg))))
|
||||
|| (pAux->iAuxOp==iOp
|
||||
&& (pAux->iAuxArg>31 || !(mask & MASKBIT32(pAux->iAuxArg))))
|
||||
){
|
||||
testcase( pAux->iArg==31 );
|
||||
if( pAux->xDelete ){
|
||||
pAux->xDelete(pAux->pAux);
|
||||
testcase( pAux->iAuxArg==31 );
|
||||
if( pAux->xDeleteAux ){
|
||||
pAux->xDeleteAux(pAux->pAux);
|
||||
}
|
||||
*pp = pAux->pNext;
|
||||
*pp = pAux->pNextAux;
|
||||
sqlite3DbFree(db, pAux);
|
||||
}else{
|
||||
pp= &pAux->pNext;
|
||||
pp= &pAux->pNextAux;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user