xpcom/base/nsSetDllDirectory.h
author B2G Bumper Bot <release+b2gbumper@mozilla.com>
Fri, 26 Feb 2016 15:39:19 -0800
changeset 325591 9267d7d90e5741f47d0b68ce9227fbacf8d4aa2e
parent 223095 fe4f8a3cdb1991c1e6fba042dcab1fd345ad4357
permissions -rw-r--r--
Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/60965134996d Author: Sean Lee <weilonge@gmail.com> Desc: Merge pull request #34063 from weilonge/seanlee/DataSync/master/Bug1244169 Bug 1244169 - Implement Tabs sync data adapter. r=ferjm,michielbdejong ======== https://hg.mozilla.org/integration/gaia-central/rev/644529e8fb66 Author: Sean Lee <selee@mozilla.com> Desc: Bug 1244169 - Implement Tabs sync data adapter. r=ferjm,michielbdejong

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef nsSetDllDirectory_h
#define nsSetDllDirectory_h

#ifndef XP_WIN
#error This file only makes sense on Windows.
#endif

#include <windows.h>
#include <nscore.h>
#include <stdlib.h>

namespace mozilla {

static void
SanitizeEnvironmentVariables()
{
  DWORD bufferSize = GetEnvironmentVariableW(L"PATH", nullptr, 0);
  if (bufferSize) {
    wchar_t* originalPath = new wchar_t[bufferSize];
    if (bufferSize - 1 == GetEnvironmentVariableW(L"PATH", originalPath,
                                                  bufferSize)) {
      bufferSize = ExpandEnvironmentStringsW(originalPath, nullptr, 0);
      if (bufferSize) {
        wchar_t* newPath = new wchar_t[bufferSize];
        if (ExpandEnvironmentStringsW(originalPath,
                                      newPath,
                                      bufferSize)) {
          SetEnvironmentVariableW(L"PATH", newPath);
        }
        delete[] newPath;
      }
    }
    delete[] originalPath;
  }
}

}

#endif