aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2015-03-21 12:25:23 +0000
committerdan <dan@noemail.net>2015-03-21 12:25:23 +0000
commitb4e0fd26e3fad8124dd51a1ee1dc6e6286eff5a0 (patch)
tree44bdfb910ab98f10d2a0452a64f07c5cf11f4b8b /src
parent998aaa03ea52f20804ce9bec5a2920ff9583877e (diff)
parent474640638da26ee9a22447a37839d333e8285bf0 (diff)
downloadsqlite-b4e0fd26e3fad8124dd51a1ee1dc6e6286eff5a0.tar.gz
sqlite-b4e0fd26e3fad8124dd51a1ee1dc6e6286eff5a0.zip
Remove an unreachable branch from the OP_VCreate opcode (merge accidental fork in trunk).
FossilOrigin-Name: 2fbfec62fc03d42ee240dfefaa0aeb59a3f04d88
Diffstat (limited to 'src')
-rw-r--r--src/vdbe.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/vdbe.c b/src/vdbe.c
index 8eb772108..7d6d2b4f5 100644
--- a/src/vdbe.c
+++ b/src/vdbe.c
@@ -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;