summaryrefslogtreecommitdiffstats
path: root/skia/ext/SkFontHost_fontconfig_ipc.cpp
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-27 14:59:05 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-27 14:59:05 +0000
commitbb91ce763726b984aa69bb1dc3a8eec359753b3b (patch)
treeea25a0160d21a73dd41ed0894f01a20abc5ab15f /skia/ext/SkFontHost_fontconfig_ipc.cpp
parent86b19e614383f1e1779d85da639cc6af3d67ac25 (diff)
downloadchromium_src-bb91ce763726b984aa69bb1dc3a8eec359753b3b.zip
chromium_src-bb91ce763726b984aa69bb1dc3a8eec359753b3b.tar.gz
chromium_src-bb91ce763726b984aa69bb1dc3a8eec359753b3b.tar.bz2
Skia roll 536:560
This also includes Evan's patch: http://codereview.chromium.org/1611033 This roll sits after a revert to Skia's hairline change so, hopefully, doesn't need any rebaselines. The try servers mostly agree although there's one (clip-path-text-and-shape.svg on Windows) that I need to keep on eye on. (That's why I'm landing this before MTV is active.) git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45696 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/ext/SkFontHost_fontconfig_ipc.cpp')
-rw-r--r--skia/ext/SkFontHost_fontconfig_ipc.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/skia/ext/SkFontHost_fontconfig_ipc.cpp b/skia/ext/SkFontHost_fontconfig_ipc.cpp
index 01bd393..0c95072 100644
--- a/skia/ext/SkFontHost_fontconfig_ipc.cpp
+++ b/skia/ext/SkFontHost_fontconfig_ipc.cpp
@@ -39,35 +39,40 @@ FontConfigIPC::~FontConfigIPC() {
bool FontConfigIPC::Match(std::string* result_family,
unsigned* result_fileid,
bool fileid_valid, unsigned fileid,
- const std::string& family, bool* is_bold,
- bool* is_italic) {
+ const std::string& family,
+ const void* characters, size_t characters_bytes,
+ bool* is_bold, bool* is_italic) {
if (family.length() > kMaxFontFamilyLength)
- return false;
+ return false;
Pickle request;
request.WriteInt(METHOD_MATCH);
request.WriteBool(fileid_valid);
if (fileid_valid)
- request.WriteUInt32(fileid);
+ request.WriteUInt32(fileid);
request.WriteBool(is_bold && *is_bold);
request.WriteBool(is_bold && *is_italic);
+ request.WriteUInt32(characters_bytes);
+ if (characters_bytes)
+ request.WriteBytes(characters, characters_bytes);
+
request.WriteString(family);
uint8_t reply_buf[512];
const ssize_t r = base::SendRecvMsg(fd_, reply_buf, sizeof(reply_buf), NULL,
request);
if (r == -1)
- return false;
+ return false;
Pickle reply(reinterpret_cast<char*>(reply_buf), r);
void* iter = NULL;
bool result;
if (!reply.ReadBool(&iter, &result))
- return false;
+ return false;
if (!result)
- return false;
+ return false;
uint32_t reply_fileid;
std::string reply_family;
@@ -76,17 +81,17 @@ bool FontConfigIPC::Match(std::string* result_family,
!reply.ReadString(&iter, &reply_family) ||
!reply.ReadBool(&iter, &resulting_bold) ||
!reply.ReadBool(&iter, &resulting_italic)) {
- return false;
+ return false;
}
*result_fileid = reply_fileid;
if (result_family)
- *result_family = reply_family;
+ *result_family = reply_family;
if (is_bold)
- *is_bold = resulting_bold;
+ *is_bold = resulting_bold;
if (is_italic)
- *is_italic = resulting_italic;
+ *is_italic = resulting_italic;
return true;
}