-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
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
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
*/
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;