<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>I think that anything to reduce the chance of memory issues is good, but you might risk support for older systems.<div><br></div><div>gcc-4.1.2 on RHEL5 does not have unique_ptr.  gcc-4.4.4 on RHEL6 has unique_ptr.</div><div><br></div><div>William</div><div><br><div><br><div>> From: aacid@kde.org<br>> To: poppler@lists.freedesktop.org<br>> Date: Sun, 29 May 2016 22:57:13 +0200<br>> Subject: [poppler] Object management helper class<br>> <br>> Hi guys, related to the previous email about std::unique_ptr I think we would <br>> greatly benefit of a class that makes Object management easier.<br>> <br>> Again if you go and check https://bugs.freedesktop.org/attachment.cgi?<br>> id=124163 we're missing lots of free() and it's hard to prove we won't miss <br>> more.<br>> <br>> My suggestion is adding a class called UniqueObject (better name welcome) <br>> which will: <br>>  * Call free on itself when it goes out of scope<br>>         So we don't need to add .free() in every other if-chek-error-return<br>>  * Call free on itself when you write on it<br>>     So we can do <br>> <br>>      dict->lookup("Decode", &obj1);<br>>     if (obj1.isNull()) {<br>>       dict->lookup("D", &obj1);<br>>     }<br>> <br>> instead of<br>> <br>>  dict->lookup("Decode", &obj1);<br>>     if (obj1.isNull()) {<br>>       obj1.free();<br>>       dict->lookup("D", &obj1);<br>>     }<br>> <br>> What do you think?<br>> <br>> Cheers,<br>>   Albert<br></div></div></div>                                      </div></body>
</html>