| Index: cloud_print/virtual_driver/win/install/setup.cc
|
| diff --git a/cloud_print/virtual_driver/win/install/setup.cc b/cloud_print/virtual_driver/win/install/setup.cc
|
| index 8613f3a0d2b9c09e1e938f2f9c78014ecdc9f24b..0a0cfe48f2de647103e758053527e89f08c8f6b4 100644
|
| --- a/cloud_print/virtual_driver/win/install/setup.cc
|
| +++ b/cloud_print/virtual_driver/win/install/setup.cc
|
| @@ -210,6 +210,7 @@ UINT CALLBACK CabinetCallback(PVOID data,
|
| }
|
|
|
| void ReadyDriverDependencies(const base::FilePath& destination) {
|
| + base::FilePath destination_copy(destination);
|
| if (base::win::GetVersion() >= base::win::VERSION_VISTA) {
|
| // GetCorePrinterDrivers and GetPrinterDriverPackagePath only exist on
|
| // Vista and later. Winspool.drv must be delayloaded so these calls don't
|
| @@ -221,15 +222,14 @@ void ReadyDriverDependencies(const base::FilePath& destination) {
|
| 1, &driver);
|
| GetPrinterDriverPackagePath(NULL, NULL, NULL, driver.szPackageID,
|
| package_path, MAX_PATH, &size);
|
| - SetupIterateCabinet(package_path, 0, &CabinetCallback,
|
| - &base::FilePath(destination));
|
| + SetupIterateCabinet(package_path, 0, &CabinetCallback, &destination_copy);
|
| } else {
|
| // Driver files are in the sp3 cab.
|
| base::FilePath package_path;
|
| PathService::Get(base::DIR_WINDOWS, &package_path);
|
| package_path = package_path.Append(L"Driver Cache\\i386\\sp3.cab");
|
| SetupIterateCabinet(package_path.value().c_str(), 0, &CabinetCallback,
|
| - &base::FilePath(destination));
|
| + &destination_copy);
|
|
|
| // Copy the rest from the driver cache or system dir.
|
| base::FilePath driver_cache_path;
|
|
|