aboutsummaryrefslogtreecommitdiff
path: root/src/vtab.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vtab.c')
-rw-r--r--src/vtab.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/vtab.c b/src/vtab.c
index e47495152..12fa2f046 100644
--- a/src/vtab.c
+++ b/src/vtab.c
@@ -943,18 +943,19 @@ FuncDef *sqlite3VtabOverloadFunction(
void sqlite3VtabMakeWritable(Parse *pParse, Table *pTab){
int i, n;
Table **apVtabLock;
+ Parse *pRoot = (pParse->pRoot ? pParse->pRoot : pParse);
assert( IsVirtual(pTab) );
- for(i=0; i<pParse->nVtabLock; i++){
- if( pTab==pParse->apVtabLock[i] ) return;
+ for(i=0; i<pRoot->nVtabLock; i++){
+ if( pTab==pRoot->apVtabLock[i] ) return;
}
- n = (pParse->nVtabLock+1)*sizeof(pParse->apVtabLock[0]);
- apVtabLock = sqlite3_realloc(pParse->apVtabLock, n);
+ n = (pRoot->nVtabLock+1)*sizeof(pRoot->apVtabLock[0]);
+ apVtabLock = sqlite3_realloc(pRoot->apVtabLock, n);
if( apVtabLock ){
- pParse->apVtabLock = apVtabLock;
- pParse->apVtabLock[pParse->nVtabLock++] = pTab;
+ pRoot->apVtabLock = apVtabLock;
+ pRoot->apVtabLock[pRoot->nVtabLock++] = pTab;
}else{
- pParse->db->mallocFailed = 1;
+ pRoot->db->mallocFailed = 1;
}
}