forked from sergiotarxz/mangareader
Memory cleanup.
This commit is contained in:
parent
d988143e76
commit
793726aa7c
@ -267,7 +267,9 @@ mg_backend_readmng_retrieve_manga_details (MgBackendReadmng *self,
|
||||
mg_manga_set_chapter_list (manga, manga_chapters);
|
||||
mg_manga_details_recovered (manga);
|
||||
cleanup_mg_backend_readmng_retrieve_manga_details:
|
||||
g_free (movie_detail);
|
||||
if (movie_detail) {
|
||||
g_free (movie_detail);
|
||||
}
|
||||
}
|
||||
|
||||
static GListStore *
|
||||
@ -369,10 +371,12 @@ mg_backend_readmng_fetch_xml_details (MgBackendReadmng *self,
|
||||
request_url_len = snprintf ( NULL, 0, "%s/%s/", self->base_url, manga_id);
|
||||
request_url = mg_util_string_alloc_string (string_util, request_url_len);
|
||||
snprintf ( request_url, request_url_len+1, "%s/%s/", self->base_url, manga_id);
|
||||
g_free (manga_id);
|
||||
|
||||
char *html_response = mg_util_soup_get_request (util_soup,
|
||||
request_url, &response_len);
|
||||
g_object_unref (util_soup);
|
||||
g_clear_object (&util_soup);
|
||||
g_clear_object (&string_util);
|
||||
return htmlReadMemory (html_response, response_len, NULL, NULL,
|
||||
HTML_PARSE_RECOVER | HTML_PARSE_NODEFDTD
|
||||
| HTML_PARSE_NOERROR | HTML_PARSE_NOWARNING );
|
||||
@ -475,7 +479,9 @@ mg_backend_readmng_retrieve_slides (MgBackendReadmng *self, const xmlDocPtr html
|
||||
xmlXPathFreeObject(xpath_result);
|
||||
}
|
||||
cleanup_mg_backend_readmng_retrieve_slides:
|
||||
g_free (nodes);
|
||||
if (nodes) {
|
||||
g_free (nodes);
|
||||
}
|
||||
return slides;
|
||||
}
|
||||
|
||||
@ -483,10 +489,16 @@ static xmlNodePtr
|
||||
mg_backend_readmng_retrieve_thumbnail_from_li (MgBackendReadmng *self, xmlNodePtr current_li) {
|
||||
size_t thumbnail_len = 0;
|
||||
MgUtilXML *xml_utils = self->xml_utils;
|
||||
xmlNodePtr return_value = NULL;
|
||||
xmlNodePtr *thumbnail = mg_util_xml_find_class (xml_utils, current_li, "thumbnail",
|
||||
&thumbnail_len, NULL, 1);
|
||||
if (thumbnail_len) return thumbnail[0];
|
||||
return NULL;
|
||||
if (!thumbnail_len) goto cleanup_mg_backend_retrieve_thumbnail_from_li;
|
||||
return_value = thumbnail[0];
|
||||
cleanup_mg_backend_retrieve_thumbnail_from_li:
|
||||
if (thumbnail) {
|
||||
g_free (thumbnail);
|
||||
}
|
||||
return return_value;
|
||||
}
|
||||
|
||||
static xmlNodePtr
|
||||
@ -535,6 +547,13 @@ mg_backend_readmng_extract_manga_info_from_current_li (MgBackendReadmng *self,
|
||||
mg_manga_new (mg_util_xml_get_attr (xml_utils, img, "src"),
|
||||
(char *)xmlNodeGetContent (title), id_manga));
|
||||
}
|
||||
|
||||
if (thumbnail) {
|
||||
xmlFreeNode (thumbnail);
|
||||
}
|
||||
if (title) {
|
||||
xmlFreeNode (title);
|
||||
}
|
||||
}
|
||||
|
||||
static xmlNodePtr
|
||||
|
15
src/manga.c
15
src/manga.c
@ -99,31 +99,40 @@ mg_manga_details_recovered (MgManga *self) {
|
||||
char *
|
||||
mg_manga_get_id (MgManga *self) {
|
||||
GValue value = G_VALUE_INIT;
|
||||
char *return_value = NULL;
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
g_object_get_property (G_OBJECT (self),
|
||||
"id",
|
||||
&value);
|
||||
return g_value_dup_string (&value);
|
||||
return_value = g_value_dup_string (&value);
|
||||
g_value_unset (&value);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
char *
|
||||
mg_manga_get_image_url (MgManga *self) {
|
||||
GValue value = G_VALUE_INIT;
|
||||
char *return_value = NULL;
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
g_object_get_property (G_OBJECT (self),
|
||||
"image_url",
|
||||
&value);
|
||||
return g_value_dup_string (&value);
|
||||
return_value = g_value_dup_string (&value);
|
||||
g_value_unset (&value);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
char *
|
||||
mg_manga_get_title (MgManga *self) {
|
||||
GValue value = G_VALUE_INIT;
|
||||
char *return_value = NULL;
|
||||
g_value_init (&value, G_TYPE_STRING);
|
||||
g_object_get_property (G_OBJECT (self),
|
||||
"title",
|
||||
&value);
|
||||
return g_value_dup_string (&value);
|
||||
return_value = g_value_dup_string (&value);
|
||||
g_value_unset (&value);
|
||||
return return_value;
|
||||
}
|
||||
|
||||
char *
|
||||
|
@ -57,6 +57,8 @@ mg_util_xml_find_class (MgUtilXML *self, xmlNodePtr node, char *class,
|
||||
}
|
||||
}
|
||||
}
|
||||
g_free (attr);
|
||||
attr = NULL;
|
||||
}
|
||||
cleanup_mg_util_xml_find_class:
|
||||
if (attr) {
|
||||
|
@ -108,5 +108,6 @@ create_detail_view (MgManga *manga, AdwLeaflet *views_leaflet) {
|
||||
g_free (manga_title_text);
|
||||
g_free (title_text);
|
||||
g_free (description_text);
|
||||
g_clear_object (&xml_util);
|
||||
return detail_view;
|
||||
}
|
||||
|
@ -87,12 +87,10 @@ int
|
||||
main_view_run (int argc,
|
||||
char **argv)
|
||||
{
|
||||
AdwApplication *app;
|
||||
int status;
|
||||
|
||||
app = adw_application_new ("org.mangareader", G_APPLICATION_FLAGS_NONE);
|
||||
AdwApplication *app = adw_application_new ("me.sergiotarxz.mangareader", G_APPLICATION_FLAGS_NONE);
|
||||
int status = 0;
|
||||
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
|
||||
status = g_application_run (G_APPLICATION (app), argc, argv);
|
||||
g_object_unref (app);
|
||||
g_clear_object (&app);
|
||||
return status;
|
||||
}
|
||||
|
@ -35,5 +35,6 @@ create_picture_from_url (char *url, gint picture_height) {
|
||||
|
||||
cleanup_create_picture_from_url:
|
||||
g_free (downloaded_image);
|
||||
g_clear_object (&util_soup);
|
||||
return picture;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user