Memory Leak
Closed this issue · 2 comments
donglu commented
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.
lexborisov commented
Remove mycore_string_raw_clean_all(&str_raw);
before mycore_string_raw_destroy(&str_raw,false);
.
donglu commented
Ok,thanks.delete line mycore_string_raw_destroy(&str_raw,false);. then solve the problem