diff options
author | drh <drh@noemail.net> | 2017-07-27 15:53:24 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2017-07-27 15:53:24 +0000 |
commit | a0024e6c99dca51ebf12e4c49c17ac22a5e98f6b (patch) | |
tree | 9254828f7b020293baaf427056e0202081ef5525 /src/vdbeapi.c | |
parent | 22930062d54a60193ee0624182961df0e6442e4b (diff) | |
download | sqlite-a0024e6c99dca51ebf12e4c49c17ac22a5e98f6b.tar.gz sqlite-a0024e6c99dca51ebf12e4c49c17ac22a5e98f6b.zip |
Improved implementation of the destructor on pointer-passing interfaces.
FossilOrigin-Name: 601ad6795927fff8c3cc1711a2fd90912499573e94aa5bc8f18cbd4b89778f58
Diffstat (limited to 'src/vdbeapi.c')
-rw-r--r-- | src/vdbeapi.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vdbeapi.c b/src/vdbeapi.c index e82b12b71..f0537513f 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -201,8 +201,10 @@ unsigned int sqlite3_value_subtype(sqlite3_value *pVal){ } void *sqlite3_value_pointer(sqlite3_value *pVal, const char *zPType){ Mem *p = (Mem*)pVal; - if( (p->flags&(MEM_AffMask|MEM_Pointer))==(MEM_Null|MEM_Pointer) + if( (p->flags&(MEM_TypeMask|MEM_Term|MEM_Subtype)) == + (MEM_Null|MEM_Term|MEM_Subtype) && zPType!=0 + && p->eSubtype=='p' && strcmp(p->u.zPType, zPType)==0 ){ return (void*)p->z; |