lexborisov/myhtml

Memory Leak

Closed this issue · 2 comments

I used myhtml lib in my project.,My code as follows:
QByteArray byteHtml;

byteHtml=html.toLocal8Bit();
char *res=byteHtml.data();
size_t size=byteHtml.size();
//html_result=html;
// basic init
myhtml_t* myhtml = myhtml_create();
myhtml_init(myhtml, MyHTML_OPTIONS_DEFAULT, 1, 0);

// init tree
myhtml_tree_t* tree = myhtml_tree_create();
myhtml_tree_init(tree, myhtml);

// parse html

myhtml_parse(tree, MyENCODING_GB18030, res, size);

// get title from index
myhtml_collection_t *classname_list=myhtml_get_nodes_by_attribute_value(tree,NULL,NULL,false,"class",strlen("class"),"name",strlen("name"),NULL);
int pagenums=classname_list->length;
myhtml_collection_t *pinfos=myhtml_get_nodes_by_attribute_value(tree,NULL,NULL,false,"class",strlen("class"),"info",strlen("info"),NULL);

if(classname_list && classname_list->length != 0 && classname_list->list[0]->child)
{

    for(int i=0;i<classname_list->length;i++)
    {
        //提取图书信息
        QString ssid,title,author,publishdate;
        //class=name节点树内容
        mycore_string_raw_t str_raw;
        mycore_string_raw_clean_all(&str_raw);
        myhtml_serialization_tree_buffer(classname_list->list[i], &str_raw);
        //printf("%s\n",str_raw.data);
        //QString ssid_onclick=QString(str_raw.data);
        mycore_string_raw_clean_all(&str_raw);
        mycore_string_raw_destroy(&str_raw,false);
    }
}

// release resources
myhtml_collection_destroy(classname_list);
myhtml_collection_destroy(pinfos);
myhtml_tree_destroy(tree);
myhtml_destroy(myhtml);

Running this section of the code has a memory leak.I want to known the reason.Please help me.

Remove mycore_string_raw_clean_all(&str_raw); before mycore_string_raw_destroy(&str_raw,false);.

Ok,thanks.delete line mycore_string_raw_destroy(&str_raw,false);. then solve the problem