mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Make sure sqlite3_value_dup() works correctly even for sqlite3_value
objects that are marked SQLITE_STATIC. FossilOrigin-Name: f332ffc39b7a17fd6254d8dc699293a57a508ba0
This commit is contained in:
@@ -224,12 +224,11 @@ sqlite3_value *sqlite3_value_dup(const sqlite3_value *pOrig){
|
||||
pNew->flags &= ~MEM_Dyn;
|
||||
pNew->db = 0;
|
||||
if( pNew->flags&(MEM_Str|MEM_Blob) ){
|
||||
if( 0==(pOrig->flags&MEM_Static) ){
|
||||
pNew->flags |= MEM_Ephem;
|
||||
if( sqlite3VdbeMemMakeWriteable(pNew)!=SQLITE_OK ){
|
||||
sqlite3ValueFree(pNew);
|
||||
pNew = 0;
|
||||
}
|
||||
pNew->flags &= ~(MEM_Static|MEM_Dyn);
|
||||
pNew->flags |= MEM_Ephem;
|
||||
if( sqlite3VdbeMemMakeWriteable(pNew)!=SQLITE_OK ){
|
||||
sqlite3ValueFree(pNew);
|
||||
pNew = 0;
|
||||
}
|
||||
}
|
||||
return pNew;
|
||||
|
Reference in New Issue
Block a user