Recommit "[lldb/API] Overwrite variables with SBLaunchInfo::SetEnvironment(append...
authorPavel Labath <pavel@labath.sk>
Mon, 6 Jul 2020 14:44:37 +0000 (16:44 +0200)
committerPavel Labath <pavel@labath.sk>
Thu, 23 Jul 2020 12:17:57 +0000 (14:17 +0200)
commit9cdd68e7c1331efd3c0aec84ef925a1679a73771
tree468085f6b4edc9c30e74fed366f24b24e761ddbb
parent697c6d8907e781534eeff062fbe90806ece4b25c
Recommit "[lldb/API] Overwrite variables with SBLaunchInfo::SetEnvironment(append=true)"

The patch was reverted 27d52cd86a2c because of failures in
TestWeakSymbols.py. These have now been addressed in D83552.

The original commit message was:
This function was documented to overwrite entries with D76111, which was
adding a couple of similar functions. However, this function (unlike the
functions added in that patch) was/is not actually overwriting variables
-- any pre-existing variables would get ignored.

This behavior does not seem to be intentional. In fact, before the refactor in
D41359, this function could introduce duplicate entries, which could
have very surprising effects both inside lldb and on other applications
(some applications would take the first value, some the second one; in
lldb, attempting to unset a variable could make the second variable
become active, etc.).

Overwriting seems to be the most reasonable behavior here, so change the
code to match documentation.

Differential Revision: https://reviews.llvm.org/D83306
lldb/source/API/SBLaunchInfo.cpp
lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py