D11447: No longer export QT_QPA_PLATFORM env variable to the session

Fabian Vogt noreply at phabricator.kde.org
Mon Mar 19 17:53:11 UTC 2018


fvogt requested changes to this revision.
fvogt added a comment.
This revision now requires changes to proceed.


  In D11447#229385 <https://phabricator.kde.org/D11447#229385>, @graesslin wrote:
  
  > In D11447#229337 <https://phabricator.kde.org/D11447#229337>, @fvogt wrote:
  >
  > > In D11447#229334 <https://phabricator.kde.org/D11447#229334>, @graesslin wrote:
  > >
  > > > In D11447#229128 <https://phabricator.kde.org/D11447#229128>, @fvogt wrote:
  > > >
  > > > > If `KWorkSpace::detectPlatform(argc, argv);` were changed to edit `argc` and `argv` to pass `-platform foo` instead of setting `QT_QPA_PLATFORM`, the `qunsetenv` calls would become unnecessary.
  > > >
  > > >
  > > > but that sounds rather dangerous. I don't want to mess with the command line arguments
  > >
  > >
  > > Why is that more dangerous than environment variables?
  > >  If argc and argv are passed to `QApplication`, you already know how it'll be parsed.
  >
  >
  > Because I don't see how I could add something to argv without leaking memory and potentially crash. I consider it as dangerous to modify the argv array and adding elements to it. It's something I do not dare.
  
  
  You don't modify it, you create a new one.
  
    new_argv = new char*[argc+2];
    new_argv[0] = argv[0];
    new_argv[1] = "-platform";
    new_argv[2] = "foo";
    for(int i = 1...argc) new_argv[i+2] = argv[i];
  
  Yes, you deliberately have to "leak" argc*sizeof(char*), but IMO it's more than worth not having to undo a very opaque hack everywhere where a child process could spawn.
  
  Please move the `qunsetenv` into a method in `KWorkSpace` at least.

REPOSITORY
  R120 Plasma Workspace

REVISION DETAIL
  https://phabricator.kde.org/D11447

To: graesslin, #plasma, davidedmundson, romangg, fvogt
Cc: romangg, fvogt, plasma-devel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20180319/1f403256/attachment.html>


More information about the Plasma-devel mailing list