Module: wine Branch: master Commit: 8cbc34e40fc3ae6d65f3ced298cbe509eaaa5210 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8cbc34e40fc3ae6d65f3ced298... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Fri Jul 29 14:31:22 2011 +0200 mshtml: Improved handling empty dispex_data_t in preprocess_dispex_data. --- dlls/mshtml/dispex.c | 18 ++++++++---------- 1 files changed, 8 insertions(+), 10 deletions(-) diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c index 09de654..98f73b6 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; }