From: drh <> Date: Mon, 8 Aug 2022 13:04:08 +0000 (+0000) Subject: Remove an unreachable branch in the numericType() helper routine. X-Git-Tag: version-3.40.0~254 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5e10d892d699ea0dc48c4fc15d996c9b7629a989;p=thirdparty%2Fsqlite.git Remove an unreachable branch in the numericType() helper routine. FossilOrigin-Name: a99cc008e46ab1a4fdbe2fa87202d026a10c57be55e3e9fedd935795ed6dc694 --- diff --git a/manifest b/manifest index f5ed72888c..6c2fbdb446 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Do\snot\sattempt\sto\sconvert\san\soversized\sfloating\spoint\svalue\sinto\san\sinteger. -D 2022-08-08T12:19:13.235 +C Remove\san\sunreachable\sbranch\sin\sthe\snumericType()\shelper\sroutine. +D 2022-08-08T13:04:08.230 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -642,7 +642,7 @@ F src/upsert.c 8789047a8f0a601ea42fa0256d1ba3190c13746b6ba940fe2d25643a7e991937 F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0 F src/util.c 602fe229f32a96ceccae4f40824129669582096f7c355f53dbac156c9fecef23 F src/vacuum.c bb346170b0b54c6683bba4a5983aea40485597fdf605c87ec8bc2e199fe88cd8 -F src/vdbe.c e0517ef4a599aa71dcc3875c558f0369790b7e048df8ed7b9993d24818a26ea3 +F src/vdbe.c 6bca2e524d29d9f40e9842c287e60dbae5c428b6ea23f8ceb3114b78b3995d73 F src/vdbe.h 64619af62603dc3c4f5ff6ff6d2c8f389abd667a29ce6007ed44bd22b3211cd0 F src/vdbeInt.h 2cad0aeeb106371ed0e0946bab89f60627087068847afc2451c05056961c18da F src/vdbeapi.c 4cfbf7ec3ed60366a38655f3f10316c5a3d68f6d4d06e462f88679392611c756 @@ -1981,8 +1981,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 86e30d7c4bb1cebe25b66686d6d1ee170c1a88e5a6c1bed6652ebbb024d62062 -R cc38bc596bc6cfb7cf263b784bfa32d2 +P 6c4fc8385ee22516e0b87fb647327ee7d1a564040ebe2a4d66fc999ef2908df2 +R e4cfac9ab2cb69853bf392410d0d10ea U drh -Z 1b3d5f93d9de8e10c30a689056160d79 +Z 0989c0895e99c37065974c0506edc50e # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 30ca22856c..cbd770bafc 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6c4fc8385ee22516e0b87fb647327ee7d1a564040ebe2a4d66fc999ef2908df2 \ No newline at end of file +a99cc008e46ab1a4fdbe2fa87202d026a10c57be55e3e9fedd935795ed6dc694 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index 346d005fad..dcfab51ace 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -478,17 +478,18 @@ static u16 SQLITE_NOINLINE computeNumericType(Mem *pMem){ ** But it does set pMem->u.r and pMem->u.i appropriately. */ static u16 numericType(Mem *pMem){ - if( pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal) ){ + assert( (pMem->flags & MEM_Null)==0 + || pMem->db==0 || pMem->db->mallocFailed ); + if( pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal|MEM_Null) ){ testcase( pMem->flags & MEM_Int ); testcase( pMem->flags & MEM_Real ); testcase( pMem->flags & MEM_IntReal ); - return pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal); - } - if( pMem->flags & (MEM_Str|MEM_Blob) ){ - testcase( pMem->flags & MEM_Str ); - testcase( pMem->flags & MEM_Blob ); - return computeNumericType(pMem); + return pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal|MEM_Null); } + assert( pMem->flags & (MEM_Str|MEM_Blob) ); + testcase( pMem->flags & MEM_Str ); + testcase( pMem->flags & MEM_Blob ); + return computeNumericType(pMem); return 0; }