Remove an unreachable branch from the OP_VCreate opcode.

FossilOrigin-Name: 5fca41a3811766b48f5f23d5d49cc4e6e79fa867
This commit is contained in:
drh 2015-03-21 12:22:16 +00:00
parent e56f53ef7c
commit 474640638d
3 changed files with 19 additions and 14 deletions

View File

@ -1,5 +1,5 @@
C Add\sa\smissing\s"ifcapable\sfts3"\sto\sa\stest\scase\sin\svtab2.test.
D 2015-03-21T10:53:01.184
C Remove\san\sunreachable\sbranch\sfrom\sthe\sOP_VCreate\sopcode.
D 2015-03-21T12:22:16.937
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -293,7 +293,7 @@ F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13
F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
F src/util.c 98a7627ca48ad3265b6940915a1d08355eb3fc7e
F src/vacuum.c 9460b9de7b2d4e34b0d374894aa6c8a0632be8ec
F src/vdbe.c 3d96875d883c2bf53a4806c9d4c5abff18511da4
F src/vdbe.c bd793ed436edccaf264ec969ac92c9b5f4b41d64
F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3
F src/vdbeInt.h bb56fd199d8af1a2c1b9639ee2f70724b4338e3a
F src/vdbeapi.c 583d56b129dd27f12bed518270de9ebe521e6a75
@ -1246,7 +1246,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P b11d1793a06a44931edcbf12a615b49794d53a62
R 55729177793663a0c48c1beb22d1dc2b
U dan
Z c52b93c6a8110abb696022d137cc00a4
P d845b0f69093178517d66e1fc5060e8f62c681c7
R 33e37ff5951445c194f8f62b65ec1d8a
U drh
Z f47a30263eba86ab7824497d08f8b218

View File

@ -1 +1 @@
d845b0f69093178517d66e1fc5060e8f62c681c7
5fca41a3811766b48f5f23d5d49cc4e6e79fa867

View File

@ -6033,15 +6033,20 @@ case OP_VBegin: {
*/
case OP_VCreate: {
Mem sMem; /* For storing the record being decoded */
const char *zTab; /* Name of the virtual table */
memset(&sMem, 0, sizeof(sMem));
sMem.db = db;
/* Because P2 is always a static string, it is impossible for the
** sqlite3VdbeMemCopy() to fail */
assert( (aMem[pOp->p2].flags & MEM_Str)!=0 );
assert( (aMem[pOp->p2].flags & MEM_Static)!=0 );
rc = sqlite3VdbeMemCopy(&sMem, &aMem[pOp->p2]);
if( rc==SQLITE_OK ){
const char *zTab = (const char*)sqlite3_value_text(&sMem);
assert( zTab || db->mallocFailed );
if( zTab ){
rc = sqlite3VtabCallCreate(db, pOp->p1, zTab, &p->zErrMsg);
}
assert( rc==SQLITE_OK );
zTab = (const char*)sqlite3_value_text(&sMem);
assert( zTab || db->mallocFailed );
if( zTab ){
rc = sqlite3VtabCallCreate(db, pOp->p1, zTab, &p->zErrMsg);
}
sqlite3VdbeMemRelease(&sMem);
break;