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

Reid Kleckner rnk at google.com
Mon Oct 7 09:32:34 PDT 2013


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131007/4af08ce5/attachment.html>


More information about the llvm-commits mailing list