diff options
author | unknown <serg@serg.mylan> | 2003-12-09 20:49:48 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2003-12-09 20:49:48 +0100 |
commit | 7cfbf9e8f681eac207f8b37d12780f73ffa5dd70 (patch) | |
tree | 43401c44026dd8c5e5d1025bec6b87687b304e90 /myisam/ft_boolean_search.c | |
parent | e425b98a0129dd72c68fc995ee086fe68c0138dd (diff) | |
download | mariadb-git-7cfbf9e8f681eac207f8b37d12780f73ffa5dd70.tar.gz |
code cleanup after some reasoning
sql/mysqld.cc:
code cleanup
Diffstat (limited to 'myisam/ft_boolean_search.c')
-rw-r--r-- | myisam/ft_boolean_search.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/myisam/ft_boolean_search.c b/myisam/ft_boolean_search.c index 30b52a20060..c7128464228 100644 --- a/myisam/ft_boolean_search.c +++ b/myisam/ft_boolean_search.c @@ -322,10 +322,13 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query, to alloc queue with alloc_root() */ res=ftb->queue.max_elements=1+query_len/(min(ft_min_word_len,2)+1); - ftb->queue.root=(byte **)alloc_root(&ftb->mem_root, (res+1)*sizeof(void*)); + if (!(ftb->queue.root= + (byte **)alloc_root(&ftb->mem_root, (res+1)*sizeof(void*)))) + goto err; reinit_queue(& ftb->queue, res, 0, 0, (int (*)(void*,byte*,byte*))FTB_WORD_cmp, 0); - ftbe=(FTB_EXPR *)alloc_root(&ftb->mem_root, sizeof(FTB_EXPR)); + if (!(ftbe=(FTB_EXPR *)alloc_root(&ftb->mem_root, sizeof(FTB_EXPR)))) + goto err; ftbe->weight=1; ftbe->flags=FTB_FLAG_YES; ftbe->nos=1; @@ -343,6 +346,10 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query, if (ftb->queue.elements<2) ftb->with_scan &= ~FTB_FLAG_TRUNC; ftb->state=READY; return ftb; +err: + free_root(& ftb->mem_root, MYF(0)); + my_free((gptr)ftb,MYF(0)); + return 0; } |