summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-07 05:33:41 +0000
committerpiman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-07 05:33:41 +0000
commit8a19b5acd2bcc8e1e11643786d8ac830867ef3f5 (patch)
treee90965dc48e5d7f9b407354ae5ed6903accf3227 /gpu
parente652df3e915ab9720480158f261a285e4a696a77 (diff)
downloadchromium_src-8a19b5acd2bcc8e1e11643786d8ac830867ef3f5.zip
chromium_src-8a19b5acd2bcc8e1e11643786d8ac830867ef3f5.tar.gz
chromium_src-8a19b5acd2bcc8e1e11643786d8ac830867ef3f5.tar.bz2
Use gpu::Mailbox in IPCs instead of std::string
gpu::Mailbox is safer since the size is checked in the deserializer. It's also overall less code. BUG=None Review URL: https://chromiumcodereview.appspot.com/12440005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186627 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/mailbox_manager.cc5
-rw-r--r--gpu/command_buffer/service/mailbox_manager.h4
2 files changed, 9 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/mailbox_manager.cc b/gpu/command_buffer/service/mailbox_manager.cc
index 9019393..ccc48eb 100644
--- a/gpu/command_buffer/service/mailbox_manager.cc
+++ b/gpu/command_buffer/service/mailbox_manager.cc
@@ -8,6 +8,7 @@
#include "base/rand_util.h"
#include "crypto/hmac.h"
+#include "gpu/command_buffer/common/mailbox.h"
#include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/command_buffer/service/texture_definition.h"
@@ -19,6 +20,10 @@ MailboxName::MailboxName() {
std::fill(signature, signature + sizeof(signature), 0);
}
+MailboxName::MailboxName(const ::gpu::Mailbox& mailbox) {
+ std::copy(mailbox.name, mailbox.name + sizeof(mailbox.name), key);
+}
+
MailboxManager::MailboxManager()
: hmac_(crypto::HMAC::SHA256),
textures_(std::ptr_fun(&MailboxManager::TargetNameLess)) {
diff --git a/gpu/command_buffer/service/mailbox_manager.h b/gpu/command_buffer/service/mailbox_manager.h
index 8f97dd4..85a5ec0 100644
--- a/gpu/command_buffer/service/mailbox_manager.h
+++ b/gpu/command_buffer/service/mailbox_manager.h
@@ -22,6 +22,9 @@
typedef signed char GLbyte;
namespace gpu {
+
+struct Mailbox;
+
namespace gles2 {
class TextureDefinition;
@@ -32,6 +35,7 @@ class TextureManager;
// group. It is a random key signed with a hash of a private key.
struct GPU_EXPORT MailboxName {
MailboxName();
+ explicit MailboxName(const ::gpu::Mailbox& mailbox);
GLbyte key[GL_MAILBOX_SIZE_CHROMIUM / 2];
GLbyte signature[GL_MAILBOX_SIZE_CHROMIUM / 2];
};