aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeapi.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2017-07-27 15:53:24 +0000
committerdrh <drh@noemail.net>2017-07-27 15:53:24 +0000
commita0024e6c99dca51ebf12e4c49c17ac22a5e98f6b (patch)
tree9254828f7b020293baaf427056e0202081ef5525 /src/vdbeapi.c
parent22930062d54a60193ee0624182961df0e6442e4b (diff)
downloadsqlite-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.c4
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;