@@ -1290,40 +1290,46 @@ static int fts5TriCreate(
1290
1290
Fts5Tokenizer * * ppOut
1291
1291
){
1292
1292
int rc = SQLITE_OK ;
1293
- TrigramTokenizer * pNew = ( TrigramTokenizer * ) sqlite3_malloc ( sizeof ( * pNew )) ;
1294
- UNUSED_PARAM ( pUnused );
1295
- if ( pNew == 0 ){
1296
- rc = SQLITE_NOMEM ;
1293
+ TrigramTokenizer * pNew = 0 ;
1294
+
1295
+ if ( nArg % 2 ){
1296
+ rc = SQLITE_ERROR ;
1297
1297
}else {
1298
- int i ;
1299
- pNew -> bFold = 1 ;
1300
- pNew -> iFoldParam = 0 ;
1301
- for (i = 0 ; rc == SQLITE_OK && i < nArg ; i += 2 ){
1302
- const char * zArg = azArg [i + 1 ];
1303
- if ( 0 == sqlite3_stricmp (azArg [i ], "case_sensitive" ) ){
1304
- if ( (zArg [0 ]!= '0' && zArg [0 ]!= '1' ) || zArg [1 ] ){
1305
- rc = SQLITE_ERROR ;
1298
+ pNew = (TrigramTokenizer * )sqlite3_malloc (sizeof (* pNew ));
1299
+ UNUSED_PARAM (pUnused );
1300
+ if ( pNew == 0 ){
1301
+ rc = SQLITE_NOMEM ;
1302
+ }else {
1303
+ int i ;
1304
+ pNew -> bFold = 1 ;
1305
+ pNew -> iFoldParam = 0 ;
1306
+ for (i = 0 ; rc == SQLITE_OK && i < nArg ; i += 2 ){
1307
+ const char * zArg = azArg [i + 1 ];
1308
+ if ( 0 == sqlite3_stricmp (azArg [i ], "case_sensitive" ) ){
1309
+ if ( (zArg [0 ]!= '0' && zArg [0 ]!= '1' ) || zArg [1 ] ){
1310
+ rc = SQLITE_ERROR ;
1311
+ }else {
1312
+ pNew -> bFold = (zArg [0 ]== '0' );
1313
+ }
1314
+ }else if ( 0 == sqlite3_stricmp (azArg [i ], "remove_diacritics" ) ){
1315
+ if ( (zArg [0 ]!= '0' && zArg [0 ]!= '1' && zArg [0 ]!= '2' ) || zArg [1 ] ){
1316
+ rc = SQLITE_ERROR ;
1317
+ }else {
1318
+ pNew -> iFoldParam = (zArg [0 ]!= '0' ) ? 2 : 0 ;
1319
+ }
1306
1320
}else {
1307
- pNew -> bFold = (zArg [0 ]== '0' );
1308
- }
1309
- }else if ( 0 == sqlite3_stricmp (azArg [i ], "remove_diacritics" ) ){
1310
- if ( (zArg [0 ]!= '0' && zArg [0 ]!= '1' && zArg [0 ]!= '2' ) || zArg [1 ] ){
1311
1321
rc = SQLITE_ERROR ;
1312
- }else {
1313
- pNew -> iFoldParam = (zArg [0 ]!= '0' ) ? 2 : 0 ;
1314
1322
}
1315
- }else {
1316
- rc = SQLITE_ERROR ;
1317
1323
}
1318
- }
1319
1324
1320
- if ( pNew -> iFoldParam != 0 && pNew -> bFold == 0 ){
1321
- rc = SQLITE_ERROR ;
1322
- }
1325
+ if ( pNew -> iFoldParam != 0 && pNew -> bFold == 0 ){
1326
+ rc = SQLITE_ERROR ;
1327
+ }
1323
1328
1324
- if ( rc != SQLITE_OK ){
1325
- fts5TriDelete ((Fts5Tokenizer * )pNew );
1326
- pNew = 0 ;
1329
+ if ( rc != SQLITE_OK ){
1330
+ fts5TriDelete ((Fts5Tokenizer * )pNew );
1331
+ pNew = 0 ;
1332
+ }
1327
1333
}
1328
1334
}
1329
1335
* ppOut = (Fts5Tokenizer * )pNew ;
0 commit comments