<div dir="ltr">Didn't seem to be too invasive - r266222.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 12, 2016 at 10:54 AM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">While useful, that would require a lot of restructuring, I think.<br>
<br>
This file seems to mostly be dealing with C-style objects;<br>
ExprEvalResult doesn't even have a C++ destructor. I'm not going to<br>
dig into that, I just wanted to address this bug that someone<br>
reported.<br>
<span class="HOEnZb"><font color="#888888"><br>
 - Hans<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On Tue, Apr 12, 2016 at 9:51 AM, David Blaikie via cfe-commits<br>
<<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br>
> Any chance of using unique_ptr, or at least a scoped cleanup device, here?<br>
><br>
> On Mon, Apr 11, 2016 at 1:54 PM, Hans Wennborg via cfe-commits<br>
> <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br>
>><br>
>> Author: hans<br>
>> Date: Mon Apr 11 15:53:59 2016<br>
>> New Revision: 265994<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=265994&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=265994&view=rev</a><br>
>> Log:<br>
>> libclang: fix two memory leaks (PR26292)<br>
>><br>
>> Modified:<br>
>>     cfe/trunk/tools/libclang/CIndex.cpp<br>
>><br>
>> Modified: cfe/trunk/tools/libclang/CIndex.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=265994&r1=265993&r2=265994&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=265994&r1=265993&r2=265994&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- cfe/trunk/tools/libclang/CIndex.cpp (original)<br>
>> +++ cfe/trunk/tools/libclang/CIndex.cpp Mon Apr 11 15:53:59 2016<br>
>> @@ -3571,12 +3571,13 @@ static const ExprEvalResult* evaluateExp<br>
>>        rettype = callExpr->getCallReturnType(ctx);<br>
>><br>
>>        if (rettype->isVectorType() || callExpr->getNumArgs() > 1) {<br>
>> +        clang_EvalResult_dispose((CXEvalResult *)result);<br>
>>          return nullptr;<br>
>>        }<br>
>>        if (rettype->isIntegralType(ctx) || rettype->isRealFloatingType())<br>
>> {<br>
>>          if(callExpr->getNumArgs() == 1 &&<br>
>> -              !callExpr->getArg(0)->getType()->isIntegralType(ctx)){<br>
>> -<br>
>> +              !callExpr->getArg(0)->getType()->isIntegralType(ctx)) {<br>
>> +          clang_EvalResult_dispose((CXEvalResult *)result);<br>
>>            return nullptr;<br>
>>          }<br>
>>        } else if(rettype.getAsString() == "CFStringRef") {<br>
>><br>
>><br>
>> _______________________________________________<br>
>> cfe-commits mailing list<br>
>> <a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
><br>
</div></div></blockquote></div><br></div>