diff options
Diffstat (limited to 'chromium/gpu/command_buffer/common/mailbox.h')
-rw-r--r-- | chromium/gpu/command_buffer/common/mailbox.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/chromium/gpu/command_buffer/common/mailbox.h b/chromium/gpu/command_buffer/common/mailbox.h index 938167f5cf8..a45c91f279b 100644 --- a/chromium/gpu/command_buffer/common/mailbox.h +++ b/chromium/gpu/command_buffer/common/mailbox.h @@ -5,22 +5,42 @@ #ifndef GPU_COMMAND_BUFFER_MAILBOX_H_ #define GPU_COMMAND_BUFFER_MAILBOX_H_ +#include <stdint.h> #include <string.h> -#include "gpu/command_buffer/common/types.h" #include "gpu/gpu_export.h" +// From gl2/gl2ext.h. +#ifndef GL_MAILBOX_SIZE_CHROMIUM +#define GL_MAILBOX_SIZE_CHROMIUM 64 +#endif + namespace gpu { struct GPU_EXPORT Mailbox { Mailbox(); bool IsZero() const; void SetZero(); - void SetName(const int8* name); - int8 name[64]; + void SetName(const int8_t* name); + + // Generate a unique unguessable mailbox name. + static Mailbox Generate(); + + // Verify that the mailbox was created through Mailbox::Generate. This only + // works in Debug (always returns true in Release). This is not a secure + // check, only to catch bugs where clients forgot to call Mailbox::Generate. + bool Verify() const; + + int8_t name[GL_MAILBOX_SIZE_CHROMIUM]; bool operator<(const Mailbox& other) const { return memcmp(this, &other, sizeof other) < 0; } + bool operator==(const Mailbox& other) const { + return memcmp(this, &other, sizeof other) == 0; + } + bool operator!=(const Mailbox& other) const { + return !operator==(other); + } }; } // namespace gpu |