Make sure the sqlite3_result_pointer() interface does not leave a VM register
in an inconsistent state. Fix for ticket [7486aa54b968e9b5]. Test cases are in TH3. FossilOrigin-Name: d2f9230c5c7ad6166e7d2b649f77960fa58b1cb583e529a43882753ab348413c
This commit is contained in:
parent
87d63c900d
commit
526740b1b9
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
||||
C Performance\soptimization\sto\spageFindSlot()\sin\sthe\sb-tree\slayer.
|
||||
D 2017-08-23T23:09:03.990
|
||||
C Make\ssure\sthe\ssqlite3_result_pointer()\sinterface\sdoes\snot\sleave\sa\sVM\sregister\nin\san\sinconsistent\sstate.\s\sFix\sfor\sticket\s[7486aa54b968e9b5].\s\sTest\scases\nare\sin\sTH3.
|
||||
D 2017-08-24T13:55:46.912
|
||||
F Makefile.in c644bbe8ebe4aae82ad6783eae6b6beea4c727b99ff97568b847ced5e2ac7afb
|
||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||
F Makefile.msc 25b154da7f0b3d4924f27378c1f8d006285b80811f1ccf3ed953dbebf6282136
|
||||
@ -527,7 +527,7 @@ F src/vacuum.c 90839322fd5f00df9617eb21b68beda9b6e2a2937576b0d65985e4aeb1c53739
|
||||
F src/vdbe.c 82fc4553a0986a06bdd0d2b03a424e159bba5c74802fabb2841aa6cd27ccd962
|
||||
F src/vdbe.h d50cadf12bcf9fb99117ef392ce1ea283aa429270481426b6e8b0280c101fd97
|
||||
F src/vdbeInt.h 1fe00770144c12c4913128f35262d11527ef3284561baaab59b947a41c08d0d9
|
||||
F src/vdbeapi.c 05d6b14ab73952db0d73f6452d6960216997bd966a710266b2fe051f25326abc
|
||||
F src/vdbeapi.c 9c670ca0dcc1cd86373aa353b747b26fe531ca5cd4331690c611d1f03842e2a1
|
||||
F src/vdbeaux.c 2dff8186d34e0e525838f77b2fac70bd480f0273a77015bf21b6a08f2792da82
|
||||
F src/vdbeblob.c db3cf91060f6f4b2f1358a4200e844697990752177784c7c95da00b7ac9f1c7b
|
||||
F src/vdbemem.c 2f9d672af5260f0145787e1dc2c6985414987cc0dc575133a0dc17dda767d868
|
||||
@ -1650,7 +1650,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 bc1ec123ce05c9d16b0942f870381145dc9725764e47806939ff207a73066f4d
|
||||
R f6b2325c9199ea50423580e65f552033
|
||||
P 59560d079fab4b91ec50855cc60349da178209c38fb6dae674ff874ccfc7f5fa
|
||||
R f928c1195d839713ee78e6b46c1884f1
|
||||
U drh
|
||||
Z 8c1fbb63bd6c44847b2e56eee310d2d1
|
||||
Z fae59aff59c16e3b9c2ad1cd0f0e8fa3
|
||||
|
@ -1 +1 @@
|
||||
59560d079fab4b91ec50855cc60349da178209c38fb6dae674ff874ccfc7f5fa
|
||||
d2f9230c5c7ad6166e7d2b649f77960fa58b1cb583e529a43882753ab348413c
|
@ -398,7 +398,8 @@ void sqlite3_result_pointer(
|
||||
){
|
||||
Mem *pOut = pCtx->pOut;
|
||||
assert( sqlite3_mutex_held(pOut->db->mutex) );
|
||||
sqlite3VdbeMemSetNull(pOut);
|
||||
sqlite3VdbeMemRelease(pOut);
|
||||
pOut->flags = MEM_Null;
|
||||
sqlite3VdbeMemSetPointer(pOut, pPtr, zPType, xDestructor);
|
||||
}
|
||||
void sqlite3_result_subtype(sqlite3_context *pCtx, unsigned int eSubtype){
|
||||
|
Loading…
Reference in New Issue
Block a user