diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 19:40:39 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 19:40:39 +0000 |
commit | 33f137f34a97a3c3c0c4b27cd7d5153e0d84170d (patch) | |
tree | ec93d2fa1c3fbdef21dc19641ddec4c5d0606184 /printing | |
parent | 1f2a1434ec0a41ef468eef81d6f936348ae80774 (diff) | |
download | chromium_src-33f137f34a97a3c3c0c4b27cd7d5153e0d84170d.zip chromium_src-33f137f34a97a3c3c0c4b27cd7d5153e0d84170d.tar.gz chromium_src-33f137f34a97a3c3c0c4b27cd7d5153e0d84170d.tar.bz2 |
Fixed coping printer names.
TBR=noamsml
Review URL: https://codereview.chromium.org/155663002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249085 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing')
-rw-r--r-- | printing/backend/print_backend_win.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/printing/backend/print_backend_win.cc b/printing/backend/print_backend_win.cc index c47c65d..aaf8da1 100644 --- a/printing/backend/print_backend_win.cc +++ b/printing/backend/print_backend_win.cc @@ -59,6 +59,8 @@ void LoadPaper(const wchar_t* printer, wchar_t chars[kMaxPaperName]; }; + DCHECK_EQ(sizeof(PaperName), sizeof(wchar_t) * kMaxPaperName); + // Paper std::vector<PaperName> names; GetDeviceCapabilityArray(printer, port, DC_PAPERNAMES, &names); @@ -81,9 +83,11 @@ void LoadPaper(const wchar_t* printer, PrinterSemanticCapsAndDefaults::Paper paper; paper.size_um.SetSize(sizes[i].x * kToUm, sizes[i].y * kToUm); if (!names.empty()) { - paper.name.assign(&names[i].chars, &names[i].chars + kMaxPaperName); + const wchar_t* name_start = names[i].chars; + base::string16 tmp_name(name_start, kMaxPaperName); // Trim trailing zeros. - paper.name = paper.name.c_str(); + tmp_name = tmp_name.c_str(); + paper.name = base::WideToUTF8(tmp_name); } caps->papers.push_back(paper); } @@ -105,9 +109,11 @@ void LoadPaper(const wchar_t* printer, PrinterSemanticCapsAndDefaults::Paper paper; paper.size_um.SetSize(sizes[i].x * kToUm, sizes[i].y * kToUm); if (!names.empty()) { - paper.name.assign(&names[i].chars, &names[i].chars + kMaxPaperName); + const wchar_t* name_start = names[i].chars; + base::string16 tmp_name(name_start, kMaxPaperName); // Trim trailing zeros. - paper.name = paper.name.c_str(); + tmp_name = tmp_name.c_str(); + paper.name = base::WideToUTF8(tmp_name); } caps->default_paper = paper; break; |