[llvm] r192103 - Windows/Process.inc: Fix for +Asserts. &Buf[0] is not guaranteed if size is zero.

NAKAMURA Takumi geek4civic at gmail.com
Mon Oct 7 09:46:01 PDT 2013


It might be better in this case.

2013/10/8 David Majnemer <david.majnemer at gmail.com>:
> What's wrong with Buf.data() ?
>
> Sent from my iPhone
>
> On Oct 7, 2013, at 9:32 AM, Reid Kleckner <rnk at google.com> wrote:
>
> On Mon, Oct 7, 2013 at 11:33 AM, NAKAMURA Takumi <geek4civic at gmail.com>
> wrote:
>>
>> Author: chapuni
>> Date: Mon Oct  7 10:33:30 2013
>> New Revision: 192103
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=192103&view=rev
>> Log:
>> Windows/Process.inc: Fix for +Asserts. &Buf[0] is not guaranteed if size
>> is zero.
>
>
> This is unsatisfying.  We shouldn't have to zero the memory after allocating
> it.  Is there a better way we can write this pattern?  The only thing I can
> think of is 'reserve(Size); push_back(L'\0')'.
>
>>
>> Modified:
>>     llvm/trunk/lib/Support/Windows/Process.inc
>>
>> Modified: llvm/trunk/lib/Support/Windows/Process.inc
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Process.inc?rev=192103&r1=192102&r2=192103&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Support/Windows/Process.inc (original)
>> +++ llvm/trunk/lib/Support/Windows/Process.inc Mon Oct  7 10:33:30 2013
>> @@ -161,7 +161,7 @@ Optional<std::string> Process::GetEnv(St
>>    SmallVector<wchar_t, MAX_PATH> Buf;
>>    size_t Size = MAX_PATH;
>>    do {
>> -    Buf.reserve(Size);
>> +    Buf.resize(Size);
>>      Size = GetEnvironmentVariableW(&NameUTF16[0], &Buf[0],
>> Buf.capacity());
>>      if (Size == 0)
>>        return None;
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list