diff --git a/src/html.cc b/src/html.cc
index dcd804d..7b3f8d0 100644
--- a/src/html.cc
+++ b/src/html.cc
@@ -550,14 +550,6 @@ DilloHtml::~DilloHtml()
delete page_url;
delete base_url;
-
- for (int i = 0; i < images.size(); i++) {
- DilloHtmlImage *img = images.at(i);
- img->url.reset(); // Was: delete img->url;
- img->image.reset(); // Was: a_Image_unref(img->image);
- delete img;
- }
- images.clear();
}
/**
@@ -700,7 +692,7 @@ void DilloHtml::loadImages (const DilloUrl *pattern)
const DilloUrl *requester = pattern ? NULL : this->page_url;
for (int i = 0; i < images.size(); i++) {
- DilloHtmlImage *hi = images.at(i);
+ DilloHtmlImage *hi = images.at(i).get();
if (hi->image) {
assert(hi->url);
@@ -2130,9 +2122,10 @@ std::shared_ptr< DilloImage > a_Html_image_new(DilloHtml *html, const char *tag,
if (HT2TB(html)->getFgColor())
image->fg_color = HT2TB(html)->getFgColor()->getColor();
- DilloHtmlImage *hi = new DilloHtmlImage{};
- hi->url = std::move( url );
- html->images.push_back(hi);
+ auto hi_ = std::make_unique< DilloHtmlImage >();
+ hi_->url = std::move( url );
+ html->images.push_back( std::move( hi_ ) );
+ auto *hi = html->images.back().get();
load_now = prefs.load_images ||
!dStrAsciiCasecmp(URL_SCHEME(hi->url.get()), "data") ||
diff --git a/src/html_common.hh b/src/html_common.hh
index 1154180..99e9572 100644
--- a/src/html_common.hh
+++ b/src/html_common.hh
@@ -222,7 +222,7 @@ public: //BUG: for now everything is public
std::vector< std::unique_ptr< DilloHtmlForm > > forms;
std::vector< std::shared_ptr< DilloHtmlInput > > inputs_outside_form;
std::vector< std::unique_ptr< DilloUrl > > links;
- std::vector< DilloHtmlImage * > images;
+ std::vector< std::unique_ptr< DilloHtmlImage > > images;
dw::ImageMapsList maps;
private: