From: drh Date: Mon, 5 Jan 2009 18:02:27 +0000 (+0000) Subject: Make sure the MEM_Zero flags is cleared whenever removing MEM_Blob. (CVS 6111) X-Git-Tag: version-3.6.10~73 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68ac65ecdc7136c4f2fd05f8cb444c74281a08dc;p=thirdparty%2Fsqlite.git Make sure the MEM_Zero flags is cleared whenever removing MEM_Blob. (CVS 6111) FossilOrigin-Name: b2131e868a3a948ba81f7458270493085da1ae60 --- diff --git a/manifest b/manifest index 923a5c8845..951efc442f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Include\sfuzz3.test\sin\sall.test.\s\sGet\sfuzz3.test\sworking\sagain.\s(CVS\s6110) -D 2009-01-05T17:19:03 +C Make\ssure\sthe\sMEM_Zero\sflags\sis\scleared\swhenever\sremoving\sMEM_Blob.\s(CVS\s6111) +D 2009-01-05T18:02:27 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 05461a9b5803d5ad10c79f989801e9fd2cc3e592 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -198,9 +198,9 @@ F src/update.c 8c4925f9ca664effc8a1faaad67449d2074567b1 F src/utf.c 1da9c832dba0fa8f865b5b902d93f420a1ee4245 F src/util.c ea62608f66f33a7e8322de83024ae37c415c0c7f F src/vacuum.c 383d6297bddc011ab04a9eed110db6eaf523e8e9 -F src/vdbe.c 687e481528acc92a42959accafa8e41dfa46f95d +F src/vdbe.c d30c6c3e022ff0c4ff0202adfcaf38b89cb642ee F src/vdbe.h 03516f28bf5aca00a53c4dccd6c313f96adb94f6 -F src/vdbeInt.h e6e80a99ce634983b7cc2498843b4d2e5540900a +F src/vdbeInt.h 5530e45fc64c1572f123aca384096e1b84cf834b F src/vdbeapi.c 85c33cfbfa56249cbe627831610afafba754477d F src/vdbeaux.c f8bf57ba0f7ec1fc1fe3997be1cb30d08553fa5c F src/vdbeblob.c b0dcebfafedcf9c0addc7901ad98f6f986c08935 @@ -692,7 +692,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P cf627752c4537f709acae26a1e335731d55bddb2 -R 4b9de2d28fc2e8188a571158ea4e3416 +P 77dc19cfabca54353509ff346b12975044d416d5 +R 2a41e3988f61c793d4dad4e5b4435e22 U drh -Z 13bf1ffa0f51ae4cbd19f2d1eead623a +Z 89b2b05de23be25cd3f5c45e5c034efb diff --git a/manifest.uuid b/manifest.uuid index b64147347c..cc91bd5477 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -77dc19cfabca54353509ff346b12975044d416d5 \ No newline at end of file +b2131e868a3a948ba81f7458270493085da1ae60 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 26412e4049..fd6a7928aa 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -43,7 +43,7 @@ ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** -** $Id: vdbe.c,v 1.808 2009/01/02 21:08:09 drh Exp $ +** $Id: vdbe.c,v 1.809 2009/01/05 18:02:27 drh Exp $ */ #include "sqliteInt.h" #include @@ -1503,7 +1503,7 @@ case OP_ToText: { /* same as TK_TO_TEXT, in1 */ applyAffinity(pIn1, SQLITE_AFF_TEXT, encoding); rc = ExpandBlob(pIn1); assert( pIn1->flags & MEM_Str || db->mallocFailed ); - pIn1->flags &= ~(MEM_Int|MEM_Real|MEM_Blob); + pIn1->flags &= ~(MEM_Int|MEM_Real|MEM_Blob|MEM_Zero); UPDATE_MAX_BLOBSIZE(pIn1); break; } diff --git a/src/vdbeInt.h b/src/vdbeInt.h index f752113142..c574978857 100644 --- a/src/vdbeInt.h +++ b/src/vdbeInt.h @@ -15,7 +15,7 @@ ** 6000 lines long) it was split up into several smaller files and ** this header information was factored out. ** -** $Id: vdbeInt.h,v 1.160 2008/12/09 02:51:24 drh Exp $ +** $Id: vdbeInt.h,v 1.161 2009/01/05 18:02:27 drh Exp $ */ #ifndef _VDBEINT_H_ #define _VDBEINT_H_ @@ -173,7 +173,8 @@ struct Mem { /* ** Clear any existing type flags from a Mem and replace them with f */ -#define MemSetTypeFlag(p, f) ((p)->flags = ((p)->flags&~(MEM_TypeMask))|f) +#define MemSetTypeFlag(p, f) \ + ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f) /* A VdbeFunc is just a FuncDef (defined in sqliteInt.h) that contains