summaryrefslogtreecommitdiffstats
path: root/printing
diff options
context:
space:
mode:
authorvitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-05 19:40:39 +0000
committervitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-05 19:40:39 +0000
commit33f137f34a97a3c3c0c4b27cd7d5153e0d84170d (patch)
treeec93d2fa1c3fbdef21dc19641ddec4c5d0606184 /printing
parent1f2a1434ec0a41ef468eef81d6f936348ae80774 (diff)
downloadchromium_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.cc14
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;