Chromium Code Reviews| Index: printing/backend/print_backend_win.cc |
| diff --git a/printing/backend/print_backend_win.cc b/printing/backend/print_backend_win.cc |
| index c47c65d82c3e52ea53748a115d9bb2b9e9f749e0..aaf8da1acd8199d8963e1fda7298c29fca8127e9 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); |
|
Noam Samuel
2014/02/05 18:37:56
Very minor nit: This DCHECK seems superflous
|
| + |
| // 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; |