From 8cbc34e40fc3ae6d65f3ced298cbe509eaaa5210 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 29 Jul 2011 14:31:22 +0200 Subject: [PATCH] mshtml: Improved handling empty dispex_data_t in preprocess_dispex_data. --- dlls/mshtml/dispex.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c index 09de65445fa..98f73b6bdd2 100644 --- a/dlls/mshtml/dispex.c +++ b/dlls/mshtml/dispex.c @@ -248,21 +248,19 @@ static dispex_data_t *preprocess_dispex_data(DispatchEx *This) if(!data->func_cnt) { heap_free(data->funcs); + data->name_table = NULL; data->funcs = NULL; - }else if(data->func_cnt != size) { - data->funcs = heap_realloc(data->funcs, data->func_cnt * sizeof(func_info_t)); + return data; } + + data->funcs = heap_realloc(data->funcs, data->func_cnt * sizeof(func_info_t)); qsort(data->funcs, data->func_cnt, sizeof(func_info_t), dispid_cmp); - if(data->funcs) { - data->name_table = heap_alloc(data->func_cnt * sizeof(func_info_t*)); - for(i=0; i < data->func_cnt; i++) - data->name_table[i] = data->funcs+i; - qsort(data->name_table, data->func_cnt, sizeof(func_info_t*), func_name_cmp); - }else { - data->name_table = NULL; - } + data->name_table = heap_alloc(data->func_cnt * sizeof(func_info_t*)); + for(i=0; i < data->func_cnt; i++) + data->name_table[i] = data->funcs+i; + qsort(data->name_table, data->func_cnt, sizeof(func_info_t*), func_name_cmp); return data; }